在 Access (2002/2003) 数据绑定(bind)表单中,即使光标位于多行文本字段或列表框内,转动鼠标滚轮也会移动到下一条/上一条记录。这对用户来说是一个主要的烦恼,并且不能轻易关闭。

我最近发现了一个名为 MouseHook ( http://www.lebans.com/mousewheelonoff.htm ) 的 DLL,它可以有效地阻止这种鼠标滚轮行为并将其替换为更多预期行为。

但是,将外部 ActiveX 控件添加到 Access 窗体时,此模块不执行任何操作。例如,我有一个带有 FlexGrid 控件的表单,它可以包含很多行。当用户尝试使用鼠标滚轮在那里滚动时,Access 再次只是转到另一个记录,即使加载了 MouseHook DLL。

是否有像 MouseHook DLL 这样的解决方案,但它也适用于外部 ActiveX 控件?或者是否有可用的 MouseHook DLL 的源代码,以便对其进行修改以处理像 FlexGrid 这样的控件?

PS:我想问一下 MouseHook DLL 的作者,但他目前“处于暂停状态”,直到 2009 年 6 月。

最佳答案

如果您真的必须更改 UI 并更改用户期望鼠标滚轮的工作方式,我实际上建议仅禁用它而不是更改它的滚动方式。虽然它的滚动对您来说可能看起来很奇怪,但这就是程序的工作方式。如果您必须整天阅读 PDF,然后有一天有人认为鼠标滚轮滚动的工作方式不够好并更改为默认为巨大的跳跃或水平或其他任何方式,您会怎么做。是的,它可能是一个更好的解决方案,但是它对用户来说很烦人,因为它没有做它应该做的事情。

关于ms-access - 在外部 ActiveX 控件中阻止 Access 鼠标滚轮行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/284438/

10-16 20:12