M
mhhaifeng
Unregistered / Unconfirmed
GUEST, unregistred user!
listView中如何知道我点中那一列?如何取得点中单元的内容?
看了下帮助, listView report 风格中,并没能找到像DBGrid那样能轻易
知道当前选中了那一行那一列的功能。无法, 只好企图利用MouseDown事件来取得
列如, 再与DBClick结合来达到要求。 可是MouseDown事件有个问题, 就是当列数
较多而出现滚动条时, 我得到的列号就是错误的了。
我想实现的功能是,双击单元格, 便能知道当前选中的单元格内容,知道选中那第几列?
请各位大大帮个忙,无论用什么方法,帮小弟实现功能好吗?
感激不尽, 高分相送
以下是我利用MouseDown得到列数的代码:
procedure TMainForm.ListView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
intTotal:integer;
intI:integer;
begin
intTotal:=0;
for intI:=0 to ListView1.Columns.count-1 do begin
intTotal:=intTotal+ListView1.Columns.Items[intI].Width;
if x<intTotal then begin
intCoumn:=IntI; //得到列号
//break;
exit;
end;
end;
end;
procedure TMainForm.ListView1DblClick(Sender: TObject);
var
intRow:integer;
begin
intRow:=TreeView1.Selected.index; //得到行号
//intCoumn 是全局变量 于是也知道了列号
TreeView1.Items.Item[intRow].SubItems[intCoumn-1];
//得到选中的单元内容
end;
看了下帮助, listView report 风格中,并没能找到像DBGrid那样能轻易
知道当前选中了那一行那一列的功能。无法, 只好企图利用MouseDown事件来取得
列如, 再与DBClick结合来达到要求。 可是MouseDown事件有个问题, 就是当列数
较多而出现滚动条时, 我得到的列号就是错误的了。
我想实现的功能是,双击单元格, 便能知道当前选中的单元格内容,知道选中那第几列?
请各位大大帮个忙,无论用什么方法,帮小弟实现功能好吗?
感激不尽, 高分相送
以下是我利用MouseDown得到列数的代码:
procedure TMainForm.ListView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
intTotal:integer;
intI:integer;
begin
intTotal:=0;
for intI:=0 to ListView1.Columns.count-1 do begin
intTotal:=intTotal+ListView1.Columns.Items[intI].Width;
if x<intTotal then begin
intCoumn:=IntI; //得到列号
//break;
exit;
end;
end;
end;
procedure TMainForm.ListView1DblClick(Sender: TObject);
var
intRow:integer;
begin
intRow:=TreeView1.Selected.index; //得到行号
//intCoumn 是全局变量 于是也知道了列号
TreeView1.Items.Item[intRow].SubItems[intCoumn-1];
//得到选中的单元内容
end;