起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 315|回复: 13

【结贴】数据集如何在EnableControls之后鼠标焦点还在原来的位置且数据不乱跑

[复制链接]
发表于 2009-10-10 14:20:30 | 显示全部楼层 |阅读模式
重现操作:
一个datagrid(绑上数据集比如DataSet1)
一个按钮

按钮事件里有以下语句
DataSet1.DisableControls;
DataSet1.EnableControls;


滚动一下DataGrid里的数据
然后点一下按钮
datagrid里显示数据的位置前后会不一样

如图


应该怎样修改才能使其位置相同呢

2009-10-10 14-16-20.png

44.89 KB, 下载次数: 157

回复

使用道具 举报

 楼主| 发表于 2009-10-10 14:22:29 | 显示全部楼层
当然
按钮操作不只是为了
DisableControls;
EnableControls
一下

在DisableControls和EnableControls之间要对数据集遍历然后操作。

之后怎样恢复之前的显示位置?
回复 支持 反对

使用道具 举报

发表于 2009-10-10 14:30:19 | 显示全部楼层
一个按钮,啥按钮?普通的 Button?还是SpeedButton?即是否会获得焦点的按钮
还有一种,如果要恢复原先的显示位置,那么循环前记录一下,然后locate定位过去也可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 14:57:06 | 显示全部楼层
ls看我图上执行
DisableControls;
EnableControls
前后的两图,焦点是相同的,但是展示的数据位置不同
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 14:58:36 | 显示全部楼层
先不玩文字游戏。   不管什么按钮,或者是不是按钮。
只要执行了
DisableControls;
EnableControls
DataGrid前后展示的样子就不同,如图
回复 支持 反对

使用道具 举报

发表于 2009-10-10 15:04:48 | 显示全部楼层
楼主,我这边按照你说的:仅仅执行数据集的DisableControls/EnableControls,datagrid本身是没有任何变化的。
所以,请楼主把你具体做法说一下,然后再看怎么去处理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 15:07:54 | 显示全部楼层
执行DisableControls/EnableControls之前 滚动一下DataGrid 的滚动条
回复 支持 反对

使用道具 举报

发表于 2009-10-10 15:17:02 | 显示全部楼层
没有理解这句话:执行DisableControls/EnableControls之前 滚动一下DataGrid 的滚动条
另外你的datagrid的属性都是怎么设置的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-10 15:29:48 | 显示全部楼层
除了选中了edgoLoadAllRecords其他不动

2009-10-10 15-27-21.png

12.79 KB, 下载次数: 143

回复 支持 反对

使用道具 举报

发表于 2009-10-10 15:38:32 | 显示全部楼层
edgoLoadAllRecords就是此属性导致的滚动条会被重置。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 10:26 , Processed in 0.048741 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表