1

我有一个 VB.Net Winforms 应用程序,它显示一个 MDI 父窗体并允许在其上显示多个子窗体。如果子窗体超出屏幕高度,则会在 MDI Parent 的右侧自动显示一个垂直滚动条,我可以使用此滚动条将子窗体滚动到视图中。

但是,鼠标滚轮对此滚动条没有影响。如何使鼠标滚轮滚动子窗体?

我可以处理鼠标滚轮事件,但是一旦我处理它们以启用窗口滚动,我不确定如何处理它们。

4

1 回答 1

1

捕获鼠标滚轮事件后,只需调用正在滚动的控件的 SetDisplayRectLocation()。就像是

myControl.SetDisplayRectLocation(
            myControl.DisplayRectangle.X, 
            myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
          );

(ScrollAmount 是您定义的常数——从 30 像素开始)。

您还需要在主窗体上调用 AdjustFormScrollbars() 以更新滚动条位置。

(对不起,那是 C#——我不懂 VB 语法)

于 2009-06-20T22:11:49.163 回答