7 个解决方案
#1
要重绘,网上有很多ListView重绘的代码
#2
根据代码自己修改一下即可
procedure TXXForm.ListViewAdvancedCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
Stage: TCustomDrawStage; var DefaultDraw: Boolean);
begin
if (Item.Index mod 2)=0 then Sender.Canvas.Brush.Color := $AA8833;
//隔行有背景颜色
end;
#3
#4
建议你更换第三方控件
VirtualTreeView
完全可以替代自带的ListView,而且要实现你要的功能很简单
VirtualTreeView
完全可以替代自带的ListView,而且要实现你要的功能很简单
#5
如果Listview里面的一行被选中,HideSelection属性已经设置为false,在该Listview失去焦点的时候让那个被选中的行处于高亮显示,想让他显示蓝色,而不是默认的灰色,这个怎么做??
#6
HideSelection 设置为True
还是那个事件里,
if Item.Selected then Sender.Canvas.Brush.Color := $FF9933;
即可
还是那个事件里,
if Item.Selected then Sender.Canvas.Brush.Color := $FF9933;
即可
#7
成功,谢谢了。
#1
要重绘,网上有很多ListView重绘的代码
#2
根据代码自己修改一下即可
procedure TXXForm.ListViewAdvancedCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
Stage: TCustomDrawStage; var DefaultDraw: Boolean);
begin
if (Item.Index mod 2)=0 then Sender.Canvas.Brush.Color := $AA8833;
//隔行有背景颜色
end;
#3
#4
建议你更换第三方控件
VirtualTreeView
完全可以替代自带的ListView,而且要实现你要的功能很简单
VirtualTreeView
完全可以替代自带的ListView,而且要实现你要的功能很简单
#5
如果Listview里面的一行被选中,HideSelection属性已经设置为false,在该Listview失去焦点的时候让那个被选中的行处于高亮显示,想让他显示蓝色,而不是默认的灰色,这个怎么做??
#6
HideSelection 设置为True
还是那个事件里,
if Item.Selected then Sender.Canvas.Brush.Color := $FF9933;
即可
还是那个事件里,
if Item.Selected then Sender.Canvas.Brush.Color := $FF9933;
即可
#7
成功,谢谢了。