绝对经典:是否可以禁用鼠标滚轮?(可以让你少走好多路)

以下是对该问题的阐述
已知在“单个窗体”的鼠标滚轮事件发生将会顺序发生以下事件:
① mousewheel事件,即窗体鼠标滚动事件发生;
② current事件,即窗体成为当前事件;
③ 窗体的纪录移动,这个不是事件,但由于鼠标滚轮引起的纪录移动到这个时候才真正产生移动!

注意:以上事件顺序不包括窗体其它控件发生的事件。在Access帮助中提到“将焦点从一个记录移动到另一个记录。BeforeUpdate(窗体) ==> AfterUpdate(窗体) ==> Exit(控件2) ==> LostFocus(控件2) ==> RecordExit(窗体) ==> Current(窗体)”
而事实上我在“单个窗体”中试验,发现BeforeUpdate和AfterUpdate事件没有发生,而且也找不到RecordExit事件。我不知道有一个RecordExit事件,帮助中也没有找到这个关键词。

所以,在mousewheel事件中写代码令纪录往回走是不完全可行的!因为如果当前纪录是2,在这里写代码把纪录往前移一位,其实是先进到1,然后在current事件之后回到2。所以如果位于首纪录,那么就会在自己写的纪录移动代码的位置出错。如果检测首纪录,然后不运行纪录移动代码,那么current事件之后纪录还是会去到2号纪录的位置!也就是说没有达到目的!

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus