如何改变listview高亮条的颜色?(20分)

  • 主题发起人 主题发起人 星幻子
  • 开始时间 开始时间

星幻子

Unregistered / Unconfirmed
GUEST, unregistred user!
一直是蓝色的太丑了,请问如何更改?
 
procedure TForm1.ListBox1DrawItem(Control: TWinControl
Index: Integer

Rect: TRect
State: TOwnerDrawState)

begin
with ListBox1.Canvas do
begin
if (odSelected in State) then Brush.Color:=clWhite

Font.Color := clBlue

FillRect(Rect)

TextOut(Rect.Left,Rect.top,ListBox1.Items[index])

end

end;
 
用procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem
State: TCustomDrawState
var DefaultDraw: Boolean);
 
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem
State: TCustomDrawState
var DefaultDraw: Boolean);
begin
with ListView1.Canvas do
begin
if (cdsSelected in State) then
begin
Brush.Color := clRed;
end;
end;
end;
 
用zbr大哥的方法: 无效

to: weiliu 大哥 是listview 不是listbox

另外:此listview的ViewStyle 是 vsReport
 
肯定要用到 ownerDraw 的, 你看看 acdSee 的 缩略图,它也是OwnerDraw 的。至于 属于Windows 的标准控件的 sysListView, delphi 有没有公开 ownerDraw,我没有研究。
 
ListView 有 OwnerDraw
 
多人接受答案了。
 
后退
顶部