这是ACCESS中一个曾经很多人关心的老问题,虽然从ACCESS2002已经有鼠标滚轮事件了,但它并不提价取消事件的参数,
所以还是一个麻烦的问题. (原来我以为鼠标滚轮事件过程可以控制鼠标滚轮,经 轻风 提醒,才发现不能~~)
在网上主要有2种解决方法
一个是使用子类化方法,在ACCESS中使用子类很占用资源并且导致不稳定,估计没有多少人敢用.
一个在窗体上用公共变量保存记录位置,在用滚轮移动记录后用代码重新移回原位置,这个方法的缺点是实际上记录已经移动了,如果有修改的记录,记录也已自动保存,达不到主要目的.
在这里我提供一个新的解决方案,主要是利用主子窗体的特性.在网上也有人提出用子窗体,但没有说出具体的实现方法.
虽然是用了主子窗体,但通过一些设置可以实现看上去只有一个窗体的效果.
我们知道,当窗体只有一条记录,并且不能添加新记录时,鼠标滚轮是没有用处的,根据这一点,通过如下方法实现窗体禁止鼠标滚轮
首先,需要主子2个窗体,子窗体放在主窗体的主体节上,两个窗体记录来源相同,设置链接字段
主窗体可以只包含主链接字段,并且不需要添加任何控件,记录选择器属性设为否,导航按钮设为是
子窗体上添加需要显示的字段,子窗体的记录选择器属性设为是,导航按钮设为否
然后,在主窗体上添加代码实现如下功能:
主窗体移到新记录时,
允许子窗体添加记录,子窗体设为数据输入模式,断开主子窗体连接
如果窗体移到其它记录时,
恢复主子窗体连接,禁止子窗体添加记录,取消子窗体数据输入模式
在子窗体上添加代码实现如下功能:
子窗体插入新记录后,同步主窗体
呵呵,看不明白了吧...请回复看例子吧
|