【问题标题】:WinForms ScrollableControl's scrollbars capture mouse wheel?WinForms ScrollableControl 的滚动条捕捉鼠标滚轮?
【发布时间】:2015-06-15 13:52:09
【问题描述】:

我有一个基于 ScrollableControl 的自定义 ZoomBox 控件,它通过 AutoscrollMinSize 属性控制其滚动条。 我希望能够处理 WM_MOUSEWHEEL 事件来调整控件的缩放。 我采取了必要的步骤,通过在父窗体上过滤它们来确保控件即使不在焦点上也能接收到鼠标事件。

如果控件没有激活其滚动条,事件似乎只到达 OnMouseWheel 方法。如果是这样,则鼠标滚轮事件似乎被重定向到处理它们的滚动条(通过滚动)。

我希望滚动条在那里,但只能以“传统方式”控制,即通过拖动滑块或单击箭头等并自己处理滚轮。有可能实现吗?

【问题讨论】:

    标签: c# winforms mousewheel


    【解决方案1】:

    从有问题的ScrollableControl 继承并覆盖OnMouseWheel()。在那个方法中不要调用base.OnMouseWheel()

    据我所知,如果存在滚动条,没有其他方法可以阻止 ScrollableControl 滚动。

    副作用是您将不再获得 MouseWheel 事件。解决这个问题是另一个问题。从概念上讲,您想调用 base.base.OnMouseWheel()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多