LISTVIEW某单元格变颜色 ( 积分: 20 )

  • 主题发起人 主题发起人 zengyi
  • 开始时间 开始时间
Z

zengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
LISTVIEW某单元格变颜色
我想让某行的某一个列变颜色,我代码如下,但是不清楚怎么的,只能让某行变颜色
procedure TFrmMainServer.ListViewServerCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if (Trim(Sender.Column[3].Caption)='列标志') Then
Begin
If (Item.SubItems.Strings[2]>=100 ) then
Sender.Canvas.Font.Color :=clYellow
Else
Sender.Canvas.Font.Color :=clBlack; //恢复原有色彩
End;
end;
 
LISTVIEW某单元格变颜色
我想让某行的某一个列变颜色,我代码如下,但是不清楚怎么的,只能让某行变颜色
procedure TFrmMainServer.ListViewServerCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if (Trim(Sender.Column[3].Caption)='列标志') Then
Begin
If (Item.SubItems.Strings[2]>=100 ) then
Sender.Canvas.Font.Color :=clYellow
Else
Sender.Canvas.Font.Color :=clBlack; //恢复原有色彩
End;
end;
 
在OnCustomDrawSubItem中处理
 
不的行哈
 
在CustomDrawSubItem事件里:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
Sender.Canvas.Font.Color :=clBlack; //先恢复默认
if (Trim(TListView(Sender).Column[SubItem+1].Caption)='列标志') Then
If (Item.SubItems.Strings[SubItem]>=100 ) then
Sender.Canvas.Font.Color :=clYellow;
end;
 
不行的,我也试过,最终没能实现,等待好办法
 
不可能,我上面的代码刚试完能用的
 
自由界面和报表的完美解决方案!
http://www.anylib.com
 
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
Sender.Canvas.Font.Color :=clBlack; //先恢复默认
if (Trim(TListView(Sender).Column[SubItem].Caption)='列标志') Then
If strToInt(Item.SubItems.Strings[SubItem])>=100 then
Sender.Canvas.Font.Color :=clYellow;
end;

OK
 

Similar threads

后退
顶部