如何使用MouseWheel在Winforms应用程序中滚动MDI父窗口

时间:2009-06-10 17:23:36

标签: winforms mousewheel mdiparent

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

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

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

1 个答案:

答案 0 :(得分:1)

捕获mousewheel事件后,只需调用正在滚动的控件的SetDisplayRectLocation()。像

这样的东西
myControl.SetDisplayRectLocation(
            myControl.DisplayRectangle.X, 
            myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
          );

(ScrollAmount是您定义的常量 - 以30像素开头)。

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

(抱歉,这是C# - 我不懂VB语法)