如果关联的对象具有特定的值,我希望comboBox项目改变颜色。 我做了以下内容:在DrawItem上的组合框不起作用
with Control as TComboBox do
begin
Canvas.Font.Color:=clBlack;
Canvas.Brush.Color := clWhite ;
if TMyObj(MyCb.Items.Objects[MyCb.ItemIndex]).C = 'C' then
Canvas.Brush.Color := clred ;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left, Rect.Top, Items[Index])
end;
我可以看到所有的组合项目的白底黑字。当我将鼠标悬停鼠标,一切就至极的项目我悬停显示为红色(即使C值不是“C”
你明白为什么?
如果有问题的组合框被称为'MyCb ',为什么你要把它拼出来,即使你上面有'用TCombobox做'的控件?为了你的问题,也许你打算使用'Index:integer'参数而不是'Item Index'?如果没有,请提供一个[MCVE](http://stackoverflow.com/help/mcve),因为我不能在描述时重现问题(其中一个原因是“TMyObj”完全未知)。 –