C# WinForms ScrollableControl';s滚动条捕捉鼠标滚轮?

C# WinForms ScrollableControl';s滚动条捕捉鼠标滚轮?,c#,winforms,mousewheel,C#,Winforms,Mousewheel,我有一个基于ScrollableControl的自定义ZoomBox控件,它通过AutoscrollMinSize属性控制其滚动条。 我想能够处理WM_鼠标滚轮事件来调整控件的缩放。 我采取了必要的步骤,通过在父窗体上过滤鼠标事件,确保控件即使不在焦点位置也能接收鼠标事件 似乎只有当控件的滚动条未激活时,事件才会到达onmouseheel方法。如果是,则鼠标滚轮事件似乎被重定向到处理它们的滚动条(通过滚动) 我希望滚动条在那里,但只能通过“传统方式”进行控制,即拖动滑块或单击箭头等,然后自己操作

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

似乎只有当控件的滚动条未激活时,事件才会到达onmouseheel方法。如果是,则鼠标滚轮事件似乎被重定向到处理它们的滚动条(通过滚动)


我希望滚动条在那里,但只能通过“传统方式”进行控制,即拖动滑块或单击箭头等,然后自己操作滚轮。是否可以实现这一点?

继承相关的
滚动控件
,并覆盖
onmouseheel()
。在该方法中,不要调用
base.onmouseheel()

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

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