PDA

View Full Version : تغییر رنگ آیتم انتخاب شده ی لیست باکس



programerinfonet
سه شنبه 09 آبان 1391, 21:38 عصر
سلام دوستان
من میخوام وقتی یک آیتم از لیست باکس رو انتخاب کردم رنگش آبی نباشه یک رنگ دلخواه خودم بذارم اما نمیدونم چه طوری این کار رو بکنم
یکی کمکم کنه ممنون میشم

c-sharp_South
چهارشنبه 10 آبان 1391, 00:58 صبح
خیلی دوست داشتم کمکتون کنم ولی خودم هم بلد نبودم.
بعد از کلی گشتن بهترین چیزی که پیدا کردم این بود:
http://www.c-sharpcorner.com/uploadfile/alex/dotnetcolorlistbox11292005042525am/dotnetcolorlistbox.aspx
امیدوارم بتونه بهتون کمک کنه.
موفق باشید :خجالت:

programerinfonet
چهارشنبه 10 آبان 1391, 17:49 عصر
یکی بیاد کمک کنه
تا حالا کسی این کار رو نکرده ؟؟؟

black_binary
چهارشنبه 10 آبان 1391, 18:53 عصر
سلام اینو سرچ کن کلی جواب به درد بخور پیدا میکنی
override listbox for change color

programerinfonet
چهارشنبه 10 آبان 1391, 19:04 عصر
از این کد استفاده کردم خطا نمیده اما نتیجه ای هم نداره
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0) return;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
e = new DrawItemEventArgs(e.Graphics,
e.Font,
e.Bounds,
e.Index,
e.State ^ DrawItemState.Selected,
e.ForeColor,
Color.Yellow);

e.DrawBackground();
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}

harani
چهارشنبه 10 آبان 1391, 22:11 عصر
اگه میخوای میتونی از کد زیر استفاده کنی :
اول using System.Drawing.2D را بنویس بعد میتونی کد زیر رو استفاده کنی :


private void listBox1_SelectedIndexChanged(object sender, EventArgs e)//a
{
Rectangle rc = listBox1.GetItemRectangle(listBox1.SelectedIndex);//b
LinearGradientBrush brush = new LinearGradientBrush(rc, Color.Transparent, Color.Red, LinearGradientMode.ForwardDiagonal);//c
//SolidBrush brush = new SolidBrush(Color.Black);k
Graphics g = Graphics.FromHwnd(listBox1.Handle);//d

g.FillRectangle(brush, rc);//l
}