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

//ListBox1 的 Style 属性改为 lbOwnerDrawVariable
//在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;

posted on 2014-07-17 09:39  evil39c  阅读(141)  评论(0编辑  收藏  举报

导航