dbgrid中移动焦点到指定的行和列

字体大小: 中小 标准 ->行高大小: 标准
dbgrid是从TCustomGrid继承下来的,

它有col与row属性,

只不过是protected的,不能直接访问,

要处理一下,可以这样:

TDrawGrid(dbgrid1).row:=row;

TDrawGrid(dbgrid1).col:=col;

dbgrid1.setfocus;

就可以看到效果了。

1 这个方法是绝对有问题的,它会引起DBGrid内部的混乱,因为DBGrid无法定位当前纪录,如果DBGrid只读也就罢了(只读还是会出向一些问题,比如原本只能单选的纪录现在可以出现多选等等,你可以自己去试试),如果DBGrid可编辑那问题就可大了,因为当前纪录的关系,你更改的数据字段很可能不是你想象中的

2 我常用的解决办法是将上程序改为(随便设置col是安全的,没有一点问题)

Query1.first;

TDrawGrid(dbgrid1).col:=1;

dbgrid1.setfocus;

这就让焦点移到第一行第一列当中

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67983.html