• 0
kafi

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

سؤال

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

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

 

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

 

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

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

 

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

 

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

 

والف الف شكر

 

Windows_Style_Form.zip

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

22 إجابة على هذا السؤال .

  • 0

myListView.Items[0].UseItemStyleForSubItems = false

myListView.Items[0].SubItems[1].ForeColor = Color.Red

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤال غريب .... انت حضرتك عاوز لون Item يتغير امتى ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

 

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

 

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

 

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

 

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

[ltr]For Each lvi As ListViewItem In ListView1.Itemslvi.ForeColor = Color.Redlvi.ForeColor = Color.BlueNext[/ltr]

؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

post-219398-0-26853200-1390217368.png

 

التجربة ..

 

 

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الف الف شكر

اخي 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

 

تحياتي :)

WindowsApplication2.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الف شكر

اخي 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

e.DrawText()

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

 

تحياتي :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

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

 

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

 

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

والف شكر

تم تعديل بواسطه kafi
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

تحياتي :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

تحياتي  ^_^

DataBase.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

تحياتي  ^_^ 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي / bahbah

 

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

 

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

 

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

 

ارجو ايجاد حل

 

والف شكر

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

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

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

تم تعديل بواسطه kafi
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

تحياتي  ^_^

DataBase.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا اخي

bahbah

 على اجابتك

 

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

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

 

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

 

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

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

 

ارجو التوضيح

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

 

تحياتي :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

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

 

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

 

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .