|
发表于 2010-5-20 17:21:14
|
显示全部楼层
最初由 liyuting730 发布
[B]我不想触发记录滚动事件,所以就没有用这个办法。
我的需求是,当用户在数据网格上选择一行的时候,获取这行某个字段的值,触发这个字段的onchange事件,再进行一系列操作..
以下省略...... [/B]
==============================
可以在DataGrid的OnMouseMove根据鼠标位置判断鼠标所在列【字段】,具体如下:
var
i , lrow,lwidth : integer;
lwidth:= DataGrid.leftCoord;
for i:=0 to DataGrid.columnCount-1 do
begin
if DataGrid.columns.Visible= true then
lwidth:= lwidth + DataGrid.columns.width+(i+1)*DataGrid.RowSeparatorLineWidth;//循环增加列判断鼠标所在列数
if (x>lwidth - DataGrid.columns.width) and(x<= lwidth) then
begin
lrow:= i;//字段列数
break;
end;
end;
如上DataGrid.columns[lrow].FileName 即为要获取的字段名。
//如果想获取行数
可以循环数据集,通过增加行高来判断所在行。 |
|