PDA

View Full Version : سوال: تغییر رنگ آیتم کمبوباکس در C#



kamran_14
یک شنبه 05 مهر 1394, 20:13 عصر
سلام
خسته نباشید
چطوری میشه رنگ قلم فقط یک ایتم موجود در combobox را تغییر داد؟

shadi khanum
دوشنبه 06 مهر 1394, 09:21 صبح
این کد رو تو رویداد DrawItem ، کمبو باکستون بنویس و با این دستور سومین ردیف قرمز میشه

e.DrawBackground();
if (e.Index == 2)
{


string s = comboBox1.Items[e.Index].ToString();
e.Graphics.DrawString(s, new Font("Tahoma", 8, FontStyle.Regular), System.Drawing.Brushes.Red, new PointF(e.Bounds.X, e.Bounds.Y));

}
else
{

string s = comboBox1.Items[e.Index].ToString();
e.Graphics.DrawString(s, new Font("Tahoma", 8, FontStyle.Regular), System.Drawing.Brushes.Black, new PointF(e.Bounds.X, e.Bounds.Y));

}

kamran_14
دوشنبه 06 مهر 1394, 20:53 عصر
این کد رو تو رویداد DrawItem ، کمبو باکستون بنویس و با این دستور سومین ردیف قرمز میشه
ممنون از جوابتون
این رویداد کی فراخوانی میشه؟
هیچ اتفاقی نمی افته؟

shadi khanum
سه شنبه 07 مهر 1394, 08:45 صبح
شرمنده این رو یادم رفت بگم که خصوصیت DrawMode رو برای کمبوباکس OwnerDraw بذارید و از حالت Normal برش دارید
موفق باشید

mary70
سه شنبه 07 مهر 1394, 11:03 صبح
سلام برای اینکه کاربر نتونه کلمه ی جدیدی در کمبوباکس بنویسه چه کدی باید بزنیم؟

shadi khanum
سه شنبه 07 مهر 1394, 11:39 صبح
باید ویزگی DropDownStyle رو بذارین روی DropdownList

kamran_14
سه شنبه 07 مهر 1394, 21:38 عصر
ممنون از جوابتون شادی خانوم مشکل حل شد و رنگ آیتم مورد نظر تغییر کرد ولی من به جای اینکه خودم آیتم وارد کنم از طریق مشخصه datasource شی کامبو، جدولم را انتخاب و از طریق مشخصه ی displaymember یکی از ستونهای جدولم رو که در sql نوشتم انتخاب می کنم و اون ستونم رو در کامبو نشون میده. وقتی که خاصیت DrawMode رو برای کمبوباکس OwnerDraw میذارم تمامی آیتم های موجود در combo برابر رشته "System.Data.DataRowView" میشه. چرا؟

shadi khanum
چهارشنبه 08 مهر 1394, 10:29 صبح
اگر دیتاسورس به کمبوباکس دادید. اون دو خط برنامه که متغیر s رو مقداردهی کردیم رو اینجوری تغییر بدید

s = ((DataRowView)comboBox1.Items[e.Index])["name"].ToString();

به جای name هم اون فیلدی که به عنوان DiaspalayMember به کمبو دادی رو بنویسید
موفق باشی