我有一个列表框,我正在添加有关事件的信息以及事件是否处于活动状态,已完成状态或非活动状态等。每个事件都将位于列表框的单独行中,我希望“活动标签”为颜色编码(例如,绿色表示活动,蓝色表示已完成等)但文本的其余部分为黑色。有谁知道怎么做?
答案 0 :(得分:0)
基本上你需要将TListBox.Style设置为lbOwnerDrawFixed。创建一个evnet TListBox.DrawItem。在这种情况下,您可以执行以下操作:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
FillRect(Rect);
// Here you can change your Text output to your liking
Font.Color := clRed;
TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
end;
end;