看看下面的代码,对你也许有帮助!
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;

解决方案 »

  1.   

    呵呵,忘了背景了:
    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;