我在 Delphi 7 中使用 TTNTListView。它设置为 vsReport。在 OnCustomDrawSubItem 事件中,我使用以下代码:
procedure TForm.ListViewCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if SubItem = 2 then
if (Item.SubItems.Strings[1] = Text1) or (Item.SubItems.Strings[1] = Text2) then
Sender.Canvas.Font.Color := clGreen
else
Sender.Canvas.Font.Color := clRed;
end;
问题是所有 >= 3 的子项都使用与子项 2 相同的颜色绘制。我检查了 SubItem >= 3 Sender.Canvas.Font.Color 是 clBlack,但它们是用 clRed 和 clGreen 绘制的。如果我的代码有问题,请告诉我如何解决它。如果这是一个错误,也许有人知道解决方法。谢谢你。