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

怎么使edit的位置显示在dbgrid选中行的单元格

2012-03-24 
如何使edit的位置显示在dbgrid选中行的单元格如何使edit的位置显示在dbgrid选中行的单元格,也就是选中某个

如何使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横向滚动的情形。

热点排行