带Picturebox的MouseWheel事件?

5 mousewheel winforms

我想将鼠标悬停在图片框(或所有图片和主窗体)上,然后使用鼠标滚轮滚动.但是我没有运气.我写了pictureBox1.MouseWheel并检查delta.我为它设定了一个断点!= 0.到目前为止,无论我做了什么,我都无法做到.我也试过mousemove,但没有用.但是在if语句中有效.我只是永远无法让车轮上班.

如何使picturebox(或表单中的任何控件)调用mousewheel事件?

- 编辑 - 没关系.我将事件添加到大多数时间都有事件的对象.它工作得很好.在我写这个问题之前,我不确定为什么我没有想到这一点.我仍然对鼠标+轮式解决方案持开放态度.

Han*_*ant 12

Windows不会将鼠标滚动消息发送到悬停的控件,而是转到具有焦点的控件.您已经知道如何确定焦点.

由于浏览器和Office程序的工作方式,此行为变得不直观.你会发现代码我在回答这个改变这个线程.请注意它适用于您应用中的任何窗口.如果这是不合需要的,你必须在句柄值上添加过滤.


更新:在Win10中更改了此行为.它有一个名为"当我将鼠标悬停在它们上时滚动非活动窗口"的新系统设置,默认情况下处于启用状态.所以焦点不再重要,它现在的工作方式与它在浏览器中的行为非常相似.测试您的应用程序很重要,您可以通过暂时禁用系统选项来查看旧版Windows上发生的情况.