如何改变LISTVIEW的某一行的背景色或者是字体颜色?

解决方案 »

  1.   

    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    var
      cl, fcl: TColor;
    begin
      if Odd(Item.Index) then
      begin
        cl := clSkyBlue;
        fcl := clRed;
      end
      else
      begin
        cl := $008FE4E4;
        fcl := clBlue;
      end;
      Item.ListView.Canvas.Brush.Color := cl;
      Item.ListView.Canvas.Font.Color := fcl;
    end;
      

  2.   

    这样可以:将某列字段值为‘XXXXX’的行以红色标识出来。
    procedure TFormMain.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      if item.Index mod 2 = 1 then
      sender.Canvas.Brush.Color:=$f0f0f0
      else
      sender.Canvas.Brush.Color:=clwhite;   if Item.SubItems[2]='XXXXX' then   // 
       begin
       ListView1.Canvas.Font.Color:= clRed;
       end;
    end;
      

  3.   

    我自己用过的,如下:
    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
        if  odd(item.Index)   then
            item.ListView.Canvas.Brush.Color:=clWindow   //$00FEF4E7
        else
            item.ListView.Canvas.Brush.Color:=clYellow;
    end;
      

  4.   

    procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
     if odd(Item.Indent) then
     sender.Canvas.Brush.Color:=clteal
     else
     sender.Canvas.Brush.Color:=Clskyblue;
    end;
      

  5.   

    rocedure TEmployeeManagefrm.lvEmployeeInforCustomDrawItem(
      Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    begin
        if  (Item.Index mod 2)=0   then
           item.ListView.Canvas.Brush.Color:=$00FCF2EB  //$00FEF4E7 淡紫色
        else
            item.ListView.Canvas.Brush.Color:=clWhite;   //$00F7F8F9;   //clWhite   白色
    end;