您的位置:首页 > 编程语言 > C#

怎么改变listbox的item颜色(C#)

2010-12-16 11:14 417 查看

怎么改变listbox的item颜色(C#)

 C#

(1)需要先设置属性:

该事件由所有者描述的 ListBox 使用。仅当 DrawMode 属性设置为 DrawMode.OwnerDrawFixed

DrawMode.OwnerDrawVariable 时,才引发该事件。可以使用该事件来执行在 ListBox

中绘制项所需的任务。如果具有大小可变的项(当 DrawMode 属性设置为 DrawMode.OwnerDrawVariable

时),在绘制项前,引发 MeasureItem 事件。可以为 MeasureItem 事件创建事件处理程序,

以在 DrawItem 事件的事件处理程序中指定要绘制的项的大小。

有关处理事件的更多信息,请参见 使用事件

(2)重写listbox的drawitem事件

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// Set the DrawMode property to draw fixed sized items.
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Define the default color of the brush as black.
Brush myBrush = Brushes.Black;

// Determine the color of the brush to draw each item based on the index of the item to draw.
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Orange;
break;
case 2:
myBrush = Brushes.Purple;
break;
}

// Draw the current item text based on the current Font and the custom brush settings.
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}

(3)从这个例子,我们发现在c#下面重画控件,比在vc++6.0中定义自绘方便多了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# each object 任务