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;
我自己用过的,如下:
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;
这样可以:将某列字段值为‘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;