الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية تغيير لون العنصر المحدد ضمن الليست فيو ؟

بدأه kafi في 14 يناير 2014 · 22 رد · 1,703 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

 

قمت بتصميم عدة تصاميم سوف تكون ان شاء الله كنواة لشكل شاشات برنامجي

 

تفاجئت بعدم وجود خاصية تتحكم بتغيير لون العنصر المحدد ضمن الليست فيو، الامر الذي ولد لدي بعض الاحباط

اذ ان اللون الافتراضي للعنصر المحدد هو سماوي، وهو بعيد كل البعد عن الملائمة مع الوان التصاميم التي اخترتها

 

ارجو رجاء حار من الاخوة الكرام، التفضل بمساعدتي الى كيفية ايجاد الحل الدي يمكنني من التحكم بلون العنصر المحدد ضمن الليست فيو

 

تم ارفاق احد اشكال التصاميم لتوضيح اكثر للسؤال

 

والف الف شكر

 

Windows_Style_Form.zip

post-32358-0-89162300-1389726349_thumb.j

#3

في اي حدث نضع الاكواد التي تفضلت بها اخي الكريم

#5

السلام عليكم

 

انا لا اريد تغيير لون ال item

 

ولكن ما اريده هو تغيير لون الشريط ( السماوي) الذي يتحرك، على عناصر الليست فيو

 

لو اطلعت على الصورة او قمت بتشغيل المثال .......... فسوف يتضح لك بسهولة مغزى سؤالي

 

ارجو من الاخوة الكرام المساعدة في ايجاد حل ؟

والسلام عليكم

#6

طيب انت جربت الكود ده :

[ltr]For Each lvi As ListViewItem In ListView1.Items
lvi.ForeColor = Color.Red
lvi.ForeColor = Color.Blue
Next[/ltr]

؟

Visit Me personally
Visit My Facebook VB Page

فى انتظار تعليقاتكم و اسئلتكم على
Evry1falls (Visual Basic) Plus+

 

 

#7

فكرة رائعة .. وإليك الحل .. تابع الصور القادمة ..

 

post-219398-0-48595800-1390217011_thumb.

 

post-219398-0-82737000-1390217098_thumb.

 

post-219398-0-83039000-1390217132_thumb.

 

post-219398-0-75080800-1390217168.png

 

post-219398-0-77530200-1390217207_thumb.

 

الكود كاملاً :

Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
        e.DrawBackground()
        If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
            e.Graphics.FillRectangle(Brushes.Red, e.Bounds)
        End If
        Using b As New SolidBrush(e.ForeColor)
            e.Graphics.DrawString(ListBox1.GetItemText(ListBox1.Items(e.Index)), e.Font, b, e.Bounds)
        End Using
        e.DrawFocusRectangle()
    End Sub

تحياتي  ^_^ 

1

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#8

post-219398-0-26853200-1390217368.png

 

التجربة ..

1

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#9

الف الف شكر

اخي bahbah

على اجابتك وشرحك الاكثر من رائع
بارك الله فيك

 

ولكن انا ما اريده هو تغيير العنصر المحدد لليست فيو وليس لليست بوكس

 

حاولت تتبع نفس الطريقة وتطبيقها على الليست فيو، مع تغيير بسيط بالاكواد لتتناسب مع الليست فيو

e.DrawBackground()
        If e.Item.Selected = True Then
            e.Graphics.FillRectangle(Brushes.Yellow, e.Bounds)
            e.DrawText(TextFormatFlags.TextBoxControl)
        Else
            e.Graphics.FillRectangle(Brushes.White, e.Bounds)
            e.DrawText(TextFormatFlags.TextBoxControl)
        End If


        Using b As New SolidBrush(e.ForeColor)
            e.Graphics.DrawString(ListView1.GetItemText(ListView1.Items(e.Index)), e.Font, b, e.Bounds)
        End Using
        e.DrawFocusRectangle()

الا ان الامر لم ينجح

 

ارجو رجاء حار، نطراً لاهمية الموضوع بالنسبة لي ايجاد حل لتلك المشكلة العويصة

 

والف الف شكر

WindowsApplication5.rar

تم تعديل هذه المشاركة بواسطة kafi في 29 يناير 2014 في 19:23

#10

في المرفقات مثال بسيط + لا يرسم أسماء الأعمدة بشكل جيد

وتستطيع أن ترسمها جيداً بالنظر إلى هذا الموضوع : http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.ownerdraw(v=vs.110).aspx

 

تحياتي :)

WindowsApplication2.rar

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#11

الف شكر

اخي bahbah

على تواصلك معي

 

ونظرا لاهمية الموضوع القصوى بالنسبة لي، حيث صار لي فترة طويلة وانا ابحث بالمنتديات عن حل

وبما ان ما تفضلت به، فيه مشكلة من جهة الرأسية

 

فخطر ببالي حل للتغلب على رأس الليست فيو ( مكان المشكلة) بالغاء ترويسة الليست فيو، والاستعاضة عن برسمها عن طريق وضع عدة ليبلات ووضع التسميات بها

 

قمت بوضع 2  listview على ذات النموذج

1- الاولى التي باعلى النموذج، ووضعت الاكواد التي تفضلت بها، وقمت بتعبئة البيانات اليها يدويا

2- الثانية التي باسفل النموذج، ايضا وضعت الاكواد التي تفضلت بها حضرتك، ولكن تم تعبئة البيانات بها برمجيا ( عن طريق الاتصال بقاعدة البيانات)

 

ما لاحظته على الليست فيو الثانية ( والتي سوف تكون اساس لمنطلق العمل مستقبلا ان شاء الله) وجود مشكلة تتمثل، في حال اقتراب الماوس من فوق عناصر تلك الليست فيو، تختفي العناصر، ولا تظهر الى ان اقوم بالضغط على الليست فيو.... عندئد يظهر عنصر عنصر من تلك القيم

 

ارجو الاطلاع على المثال المرفق مع قاعدة البيانات، والتوجيه لحل تلك المشكلة

 

 حيث ان الحل اقترب كثيرا بادن الله

 

والف شكر

Data_Kafi.zip

Kafi.rar

post-32358-0-56273400-1391022435_thumb.j

post-32358-0-26736400-1391022479_thumb.j

تم تعديل هذه المشاركة بواسطة kafi في 29 يناير 2014 في 22:09

#12

السلام عليكم ..

 

هل يمكنك إعادة رفع الملفات .. لا أستطيع تحميلها :) ..

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#13

تم رفع الملفات

#14

هل تتذكر الحدث DrawColumnHeader ..

 

إحذف الكود الذي بداخله وضع فقط هذا الكود :

e.DrawText()

وأعد كتابة الأعمدة التي حذفتها .. وأخبرني بالنتائج ..

 

تحياتي :)

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#15

شكرا اخي على تواصلك

 

لم يتغير شي بعد وضع الكود الاخير الذي تفضلت به حضرتك

 

على فكرة العناصر تظهر محملة ضمن الليست فيو، عند فتح النموذج

بعد ذلك، تختفي العناصر عنصر عنصر، كما اقترب مؤشر الماوس منها

 

بعد ذلك عن الضغط على الليست فيو، تبدأ العناصر بالظهور عنصر عنصر ............وتثبت ولا تعود تختفي

 

ارجو ان تكون صورة المشكلة قد اتضحت اكثر

والف شكر

تم تعديل هذه المشاركة بواسطة kafi في 29 يناير 2014 في 22:43

#16

المشكلة في الملفات التي أرفقتها .. أنه هناك أخطاء كثيرة تظهر لي :)

 

سأرى ما المشكلة ..

 

تحياتي :)

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#17

تفضل مثال بسيط .. وأرجوا أن يعجبك ..

 

تحياتي  ^_^

DataBase.rar

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#18

أعجبني الموضوع .. فصممت تصميماً آخر ..

 

post-219398-0-72774400-1391028535.png

 

وهذا هو الكود :

    Private Sub ListView1_DrawColumnHeader(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader
        e.DrawBackground()
        e.Graphics.FillRectangle(Brushes.IndianRed, e.Bounds)
        e.Graphics.FillRectangle(Brushes.Black, e.Bounds.X, e.Bounds.Y, 2, e.Bounds.Height)
        e.DrawText()
    End Sub

    Private Sub ListView1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewItemEventArgs) Handles ListView1.DrawItem
        e.DrawBackground()
        If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
            e.Graphics.FillRectangle(Brushes.DarkOrange, e.Bounds)
        Else
            e.Graphics.FillRectangle(Brushes.DarkRed, e.Bounds)
        End If
        e.Graphics.FillRectangle(Brushes.Black, e.Bounds.X, e.Bounds.Y, 2, e.Bounds.Height)
        e.DrawFocusRectangle()
    End Sub

    Private Sub ListView1_DrawSubItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem
        e.DrawText()
        e.Graphics.FillRectangle(Brushes.Black, e.Bounds.X, e.Bounds.Y, 2, e.Bounds.Height)
    End Sub

تحياتي  ^_^ 

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#19

اخي / bahbah

 

شكرا على تواصلك معي واستمرارك بمحاولة ايجاد حل للمشكلة العويصة

 

بالنسبة للمثال الذي ارفقته، فلم استطع ان اشغله واعطى رسالة خطأ......اظن سببها عدم ارفاق ملف قاعدة البيانات مع المثال

 

ثانيا : الاكواد الجديدة التي تفضلت بها حضرتك من جديد، تم وضعها من جديد بمثالي، ولكن المشكلة ما زالت قائمة، عند تقريب مؤشر الماوس تختفي العناصر..........ولا تعود الا بعد الضغط على الليست فيو....وفي كل ضغطة من الماوس يعود صف

 

ارجو ايجاد حل

 

والف شكر

post-32358-0-10297900-1391031163_thumb.j

post-32358-0-81643300-1391031303_thumb.j

post-32358-0-63234800-1391031396_thumb.j

تم تعديل هذه المشاركة بواسطة kafi في 30 يناير 2014 في 00:38

#20

نعم كان سببها عدم إرفاق قاعدة البيانات ..

 

في المرفقات البرنامج الجديد ..

 

تحياتي  ^_^

DataBase.rar

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#21

شكرا اخي

bahbah

 على اجابتك

 

تم تشغيل المثال الدي ارفقته، وقمت بتعريب الاسماء العائدة لرؤوس الاعمدة، وجعلت الاتجاه على اليمين

كما هو المفروض ان يكون، لان برامجنا سوف تكون برامج عربية

 

انظر اخي الكريم، ماذا حصل والى عدم وجود توافق في حال التعريب

 

لا اعرف اخي الكريم، فيما اذا كنت قد استطعت تشغيل المثال الذي ارفقته ام لا

لانني بانتظار معرفة السبب الذي يجعل الاسطر في الليست فيو تختفي عند اقتراب حركة الماوس منها.......لانني بدأت اشعر بالاحباط .......وان لاحل على مايبدو لمشكلة تغيير اللون للعنصر الفعال في ظل استخدام واجهة عربية

 

ارجو التوضيح

#22

السلام عليكم ..

 

الملفات الذي أرفقتها لم أستطع فتحها ..

 

ولكن ما المشكلة في اللغة العربية .. قمت بنفس إعدادات العربية .. ولكن ما زالت تعمل .. لم أرى أي خلل..

 

تحياتي :)

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#23

وعليكم السلام

 

المثال الدي ارسلته معمول على فيجوال بيسك 12

ومحتاج ربط مع قاعدة البيانات حتى يعمل

 

والصور التي ارسلتها خير دليل على عدم وجود توافق عندما تكون اتجاه النافذة الحاضنة لليست فيو، وكدلك الليست فيو على العربي

 

ارجو ان تحاول ان تجد طريقة لفتح المثال الذي ارسلته، حتى تتأكد من كلامي

والف شكر على تواصلك معي

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…