首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么动态改变listview的一行的颜色?

2012-02-19 
如何动态改变listview的一行的颜色??我的要求是点一个label,然后label上面显示的字符串所对应的listview的

如何动态改变listview的一行的颜色??
我的要求是点一个label,然后label上面显示的字符串所对应的listview的那一项就要显示红色.
我试图用点击label时,将listview对应item.selected:=true;然后在listview的
oncustomdrawitem里面改变canvas.font.color,但是,有执行到color这句,可是根本没有改变,还是灰色,请高手指教!!

[解决办法]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
ListView1: TListView;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Label1Click(Sender: TObject);
procedure ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Alabel:string;

implementation

{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin
Alabel:=TLabel(Sender).Caption;
ListView1.Repaint;
end;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if item.Caption=Alabel then Sender.Canvas.Font.Color:=clred;
end;

end.

热点排行