我写了如下代码,想控制ListView中某一行的颜色,颜色更改成功。但是该行的文字内容都没有了,为何?ListView1.OwnerDraw:=True;
ListView1.OwnerData:=True;
ListView1.GridLines:=True;
ListView1.RowSelect:=True;procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
Sender.Canvas.Pen.Style:=psClear;
if Item.Index mod 2 =0 then
begin
Sender.Canvas.Brush.Color := clRed;
Sender.Canvas.Rectangle(Rect);
end
else
begin
Sender.Canvas.Brush.Color := clBtnFace;
Sender.Canvas.Rectangle(Rect);
end;
end;
ListView1.OwnerData:=True;
ListView1.GridLines:=True;
ListView1.RowSelect:=True;procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
Sender.Canvas.Pen.Style:=psClear;
if Item.Index mod 2 =0 then
begin
Sender.Canvas.Brush.Color := clRed;
Sender.Canvas.Rectangle(Rect);
end
else
begin
Sender.Canvas.Brush.Color := clBtnFace;
Sender.Canvas.Rectangle(Rect);
end;
end;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.Index mod 2 = 1 then
sender.Canvas.Brush.Color := RGB(0,0,255)
else
sender.Canvas.Brush.Color := RGB(255,0,0);
end;