Delphi实现Listbox中的item根据内容显示不同颜色的方法
本文简述了Delphi实现Listbox中的item根据内容显示不同颜色的方法,实现步骤如下:
ListBox1的Style属性改为lbOwnerDrawVariable
在ListBox的OnDrawItem事件裡,根据item的值,改变Canvas属性
示例代码如下:
procedureTForm1.ListBox1DrawItem(Control:TWinControl;Index:Integer;Rect:TRect;State:TOwnerDrawState); begin//字体用原来默认的颜色 ifOdd(index)then//当items的index为奇数时的颜色 begin listbox1.Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end else//当items的index为偶数时的颜色 begin listbox1.Canvas.Brush.Color:=clinactivecaptiontext; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end; ifodSelectedinstatethen//当选定时的颜色 begin listbox1.Canvas.Brush.Color:=clhighlight; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end; end;