调用ListView1CustomDrawSubItem事件 不过你要把listview重画一遍 procedure TfrmQueue.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin //背景颜色处理用canvas if subitem=3 then begin case TurnId of //获得不同班次的颜色 0:listview1.Canvas.Brush.Color:=clRed;//listitem.:=clBlue;//clWindow,clBlack,clDkGray,clGray,clGreen,clPurple,clRed,clSilver,clSkyBlue,clTeal,clWhite,clYellow 1:listview1.Canvas.Brush.Color:=clBlue; 2:listview1.Canvas.Brush.Color:=clTeal; 3:listview1.Canvas.Brush.Color:=clGreen; 4:listview1.Canvas.Brush.Color:=clGray; 5:listview1.Canvas.Brush.Color:=clPurple; 6:listview1.Canvas.Brush.Color:=clBlack; end; end; end;
不过你要把listview重画一遍
procedure TfrmQueue.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
//背景颜色处理用canvas
if subitem=3 then begin
case TurnId of //获得不同班次的颜色
0:listview1.Canvas.Brush.Color:=clRed;//listitem.:=clBlue;//clWindow,clBlack,clDkGray,clGray,clGreen,clPurple,clRed,clSilver,clSkyBlue,clTeal,clWhite,clYellow
1:listview1.Canvas.Brush.Color:=clBlue;
2:listview1.Canvas.Brush.Color:=clTeal;
3:listview1.Canvas.Brush.Color:=clGreen;
4:listview1.Canvas.Brush.Color:=clGray;
5:listview1.Canvas.Brush.Color:=clPurple;
6:listview1.Canvas.Brush.Color:=clBlack;
end;
end;
end;