首页 > 新闻系统 > 编程天地 > 文章正文

C#中改变listbox的item颜色的方法

2008-04-19 09:32:54 来源:中国自学编程网 作者:佚名 点击:

(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中定义自绘方便多了


精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203