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

سؤال في ال ListBox

مغلق
بدأه almalak4 في 25 يوليو 2005 · 8 رد · 555 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

نفرض ان عندنا ListBox مكون من 3 items عبارة عن text

والمطلوب ان كل ايتم يظهر بلون مختلف احنا نحدده

يعني انا مثلا عندي مجموعة مستندات والمستند الي منتهي تاريخه اريد انه يظهر بلون احمر والباقي بلون اسود

هل هذا ممكن واذا كان الجواب لا ماهو الحل للمشكلة :blink:

#2

يمكن ذلك من خلال حدث DrawItem، حيث عليك رسم العناصر التى بداخل ال Listbox بنفسك ومن ثم تلوينها حسب الشروط التى تريدها

هذا مثال بسيط لتلوين العنصر الثاني في ال ListBox

  private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
  {
 	 Rectangle rc = new Rectangle(e.Bounds.X+1 , e.Bounds.Y+1, 
    e.Bounds.Width-5, e.Bounds.Height-1);
 	 e.DrawBackground();
 	 if (e.Index==1)
 	 {

    e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),new Font("Tahoma",9), new SolidBrush(Color.Brown),rc);
 	 }
 	 else
 	 e.Graphics.DrawString(listBox1.Items[e.Index].ToString(),new Font("Tahoma",9), new SolidBrush(Color.Black),rc);
  }

يمكن الاطلاع على امثلة اخرى في msdn لحدث DrawItem

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#3

انا نسخت الكود الي في الرد

و أضفته على الكود حقي و اضفت معاه ده:

listBox1.DrawItem += new DrawItemEventHandler(this.listBox1_DrawItem);

لكن ما تغير عندي اي لون ما أدري في حاجة ثانية المفروض اني اضيفها ؟؟

وشكرا

#4

غير خاصية DrawMode

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#5

غيرت الخاصية ولا نفع

ارجو المساعدة اكثر

#6

ضع مشروعك هنا كمرفق وسوف القى عليه نظرة

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#7

هدا المشروع

عبارة عن سيرفر

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

انا اريد ان اخلي اي اسم من الاسماء ان يظهر بلون معين

swe344[1].Project.MeM.rar

#8

جرب الكود الذى كتبه سابقاً وعمل بدون مشاكل

عليك اضافة حدث DrawItem وتغير خاصية DrawMode الى OwnerDrawFixed

وهذا ما كتبت

  private void listBoxUserAccounts_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
  {
 	 Rectangle rc = new Rectangle(e.Bounds.X+1 , e.Bounds.Y+1, 
    e.Bounds.Width-5, e.Bounds.Height-1);
 	 e.DrawBackground();
 	 if (e.Index==1)
 	 {

    e.Graphics.DrawString(listBoxUserAccounts.Items[e.Index].ToString(),new Font("Tahoma",9), new SolidBrush(Color.Brown),rc);
 	 }
 	 else
    e.Graphics.DrawString(listBoxUserAccounts.Items[e.Index].ToString(),new Font("Tahoma",9), new SolidBrush(Color.Black),rc);
  }

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#9

thanx

it is ok now

هذا الموضوع مغلق.

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