如何使edit的位置显示在dbgrid选中行的单元格
如何使edit的位置显示在dbgrid选中行的单元格,也就是选中某个dbgrid单元格,实际选中的是edit
[解决办法]
有点点麻烦。因为要用到TDBGrid的protected方法和属性。
1.在当前Unit单元中定义一个伪类
TExDBGrid = class(TDBGrid)
end;
2.大致调用方法如下
....
var
aRow,aCol : Integer ;
i : Integer ;
begin
aRow := TExDBGrid(DBGrid1).Row ; //选中Cell的行
aCol := TExDBGrid(DBGrid1).Col ; //选中Cell的列
aEdit.Left := 0;
aEdit.Top:= 0;
aEdit.Width := DBGrid1.Columns.Items[aCol-1].Width + TExDBGrid(DBGrid1).GridLineWidth*2 ;
aEdit.Height := TExDBGrid(DBGrid1).RowHeights[aRow]+ TExDBGrid(DBGrid1).GridLineWidth*2;
for i := 0 to aRow - 1 do
aEdit.Top:= aEdit.Top + TExDBGrid(DBGrid1).RowHeights[i] + TExDBGrid(DBGrid1).GridLineWidth ;
for i := 0 to aCol -1 do
aEdit.Left := aEdit.Left + TExDBGrid(DBGrid1).ColWidths[i] + TExDBGrid(DBGrid1).GridLineWidth ;
....
以上代码没有考虑DBGrid横向滚动的情形。