ListView在vsReport模式下如何使选择的行改变颜色?

zcs_1 2003-04-10 04:44:12
ListView具有如下的主要属性:ViewStyle为vsReport,RowSelect为Ture。
而且一个Item具有多个SubItem,这时,选择一个Item后当前行的颜色会发生改变,
其颜色为clActiveCaption。
我想让当前行的颜色改为其他的颜色,如何修改?
...全文
82 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcs_1 2003-04-11
  • 打赏
  • 举报
回复
感谢sysu(死树) ,我随后就结贴。
sysu 2003-04-10
  • 打赏
  • 举报
回复
呵呵,下午刚在另一个帖子里贴了,

uses CommCtrl;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
r: TRect;
i: Integer;
begin
with ListView1.Canvas do
if cdsSelected in State then begin
Brush.Color := clRed;
r := Item.DisplayRect(drLabel);
// Item
FillRect(r);
TextOut(r.Left+2, r.Top, Item.Caption);
// SubItem
for i := 0 to Item.SubItems.Count - 1 do begin
ListView_GetSubItemRect(ListView1.Handle, Item.Index, i+1, LVIR_LABEL, @r);
FillRect(r);
TextOut(r.Left+5, r.Top, Item.SubItems[i]);
end;
DefaultDraw := False;
end;
end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧