因此,假设您在表单上有一个组合框,并且该表单足够大以至于具有滚动条。当用户使用鼠标滚轮向下滚动表单时,光标碰巧落在组合框上,该组合框会拦截鼠标滚轮并更改其值,而不是继续滚动表单。
我正在寻找防止意外值更改的选项,但仍保留组合框上的鼠标滚轮功能。
此刻,我正在考虑做一些事情,例如找出自上一次表单滚动事件和组合框mousewheel事件触发以来已过去了几毫秒,并在少于一定时间的情况下忽略mousewheel事件,但是我觉得这可能是一种可怕的方式,并且可能还有更优雅的解决方案。
我不是特别想完全禁用组合框中的鼠标滚轮,我希望用户仍然能够悬停然后使用滚轮更改值,但是我需要弄清楚何时这是故意的,而不是而不是滚动的一部分。
这里我仅以组合框为例,NumericUpDowns和其他控件也是如此。
有什么建议吗?
谢谢