我有一个 VB.Net Winforms 应用程序,它显示一个 MDI 父窗体并允许在其上显示多个子窗体。如果子窗体超出屏幕高度,则会在 MDI Parent 的右侧自动显示一个垂直滚动条,我可以使用此滚动条将子窗体滚动到视图中。
但是,鼠标滚轮对此滚动条没有影响。如何使鼠标滚轮滚动子窗体?
我可以处理鼠标滚轮事件,但是一旦我处理它们以启用窗口滚动,我不确定如何处理它们。
我有一个 VB.Net Winforms 应用程序,它显示一个 MDI 父窗体并允许在其上显示多个子窗体。如果子窗体超出屏幕高度,则会在 MDI Parent 的右侧自动显示一个垂直滚动条,我可以使用此滚动条将子窗体滚动到视图中。
但是,鼠标滚轮对此滚动条没有影响。如何使鼠标滚轮滚动子窗体?
我可以处理鼠标滚轮事件,但是一旦我处理它们以启用窗口滚动,我不确定如何处理它们。
捕获鼠标滚轮事件后,只需调用正在滚动的控件的 SetDisplayRectLocation()。就像是
myControl.SetDisplayRectLocation(
myControl.DisplayRectangle.X,
myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
);
(ScrollAmount 是您定义的常数——从 30 像素开始)。
您还需要在主窗体上调用 AdjustFormScrollbars() 以更新滚动条位置。
(对不起,那是 C#——我不懂 VB 语法)