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

listview多选的有关问题

2012-08-29 
listview多选的问题listview的multiselect属性设为true后,可以选,但是必须用ctrl或者shift配合鼠标点选,或

listview多选的问题
listview的multiselect属性设为true后,可以选,但是必须用ctrl或者shift配合鼠标点选,或者鼠标在空白的地方开始托选,不满足要求,能否直接用鼠拖选中其中的连续几条数据?

[解决办法]
加个CHECKBOX列进行选择
[解决办法]
没有这样的属性,只能自己模拟这样的操作,OnMouseDown,OnMouseUp,用Pen.Mode=pmXor画方框和擦除,循环用GetItemAt获取鼠标框下的内容,设置为Selected
[解决办法]

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ComCtrls, StdCtrls;type  TForm1 = class(TForm)    ListView1: TListView;    procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,      Y: Integer);    procedure ListView1MouseUp(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);  private    { Private declarations }    FDown:Boolean;  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  FDown := True;end;procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);var  item : TListItem;begin  if FDown then  begin    item := ListView1.GetItemAt(X,Y);    if item = nil then Exit;    item.Selected := True;  end;end;procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  FDown := False;end;end.
[解决办法]
依旧mouseup里处理

热点排行