看看下面的代码,对你也许有帮助!
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
p:trect;
begin
if cdsselected in state then
begin
listview1.Canvas.Font.Color:=clgreen;
p:=item.displayrect(drselectbounds);
listview1.Canvas.FillRect(p);
listview1.Canvas.Textout(p.Left+2,p.Top,item.Caption);
listview1.Canvas.brush.Color:=clred;
listview1.Canvas.FrameRect(item.displayrect(drselectbounds));
defaultdraw:=false;
end;
end;
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
p:trect;
begin
if cdsselected in state then
begin
listview1.Canvas.Font.Color:=clgreen;
p:=item.displayrect(drselectbounds);
listview1.Canvas.FillRect(p);
listview1.Canvas.Textout(p.Left+2,p.Top,item.Caption);
listview1.Canvas.brush.Color:=clred;
listview1.Canvas.FrameRect(item.displayrect(drselectbounds));
defaultdraw:=false;
end;
end;
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
p:trect;
begin
if cdsselected in state then //当被选中的时候
begin
listview1.Canvas.Font.Color:=clgreen; //字体颜色
listview1.Canvas.brush.Color:=clred; //背景色
p:=item.displayrect(drselectbounds); //求出要显示的矩形
listview1.Canvas.FillRect(p); //填充背景
listview1.Canvas.Textout(p.Left+2,p.Top,item.Caption);//显示文字
listview1.Canvas.brush.Color:=clblue;//边框颜色
listview1.Canvas.FrameRect(item.displayrect(drselectbounds));//画边框
defaultdraw:=false; //取消默认的绘制
end;
end;