`

Listbox中的item如何根据内容的不同而显示不同的颜色

 
阅读更多

Listbox中的item如何根据内容的不同而显示不同的颜色

1、ListBox1 的 Style 属性改为 lbOwnerDrawVariable
2、在ListBox的OnDrawItem事件裡,根据item的值,改变Canvas属性即可。

例如:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin       //字体用原来默认的颜色
     if Odd(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;
     if   odSelected   in   state   then        //当选定时的颜色
        begin
          listbox1.Canvas.Brush.Color:=clhighlight;
          ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);
        end;
end;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics