如何在DBGrid的数据源刷新后,保持当前记录在表格中的位置不动
我使用一个DBGrid显示一个ADO多表连接查询,当使用别的表单更改某个表的数据后,想让DBGrid更新该条记录的显示。例如我修改了职工号为‘00536’这条记录,此时这条记录在DBGrid的第7行,但是当我关闭查询,然后打开,重新回到职工号为‘00536’这条记录时,它在表格中的位置就会改变,不再是第7行了,则在程序执行时,给人一晃的感觉,不知各位师兄们有什么好的方法。 问题点数:20、回复次数:5Top
1 楼yeyang1999(yeyang1999)回复于 2003-12-01 20:50:33 得分 7
好象数据刷新都是有这种感觉的啊。你在sql sever里面拖动滚动条的时候也会如此啊,这个好象不是很重要吧。你试试在关闭之前使用bookmark记录位置,刷新查询后用bookmark回到原来记录看看呢Top
2 楼pzoon(杀死日本人)回复于 2003-12-01 20:55:21 得分 7
looklcate吧,好象是,我一般用查找一边Top
3 楼liqing7165(立青)回复于 2003-12-01 21:07:15 得分 6
进行记录定位,Top
4 楼zhangdeyu(张德宇)回复于 2003-12-01 21:15:47 得分 0
记录定位也试了,disablecontrols也试了,都不管用,不过倒是可以事先用本论坛的方法获取当前记录在DBGRid中的位置,然后向DBGrid发送一条消息,让它上下滚动,不过我不知道,该怎样写这段代码。Top
5 楼zhangdeyu(张德宇)回复于 2003-12-03 09:49:56 得分 0
我已经解决,效果很好,数据刷新后,当前记录还是保持位置不动。具体方法是先获取当前记录所在行数,DBGrid总行数,因为DBGrid刷新后,当前记录总是在中间位置,所以,计算一下中间位置,即可解决。如果有人需要源代码,请给我发电子邮件rslzc@163.comTop




