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

如何在Winforms应用程序中使用鼠标滚轮滚动MDI父窗口,winforms,mousewheel,mdiparent,Winforms,Mousewheel,Mdiparent,我有一个VB.Net Winforms应用程序,它显示一个MDI父窗体,并允许在其上显示多个子窗体。如果子窗体超出屏幕高度,则会在MDI父窗体的右侧自动显示一个垂直滚动条&我可以使用此滚动条将子窗体滚动到视图中 但是,鼠标滚轮对此滚动条没有影响。如何使鼠标滚轮滚动子窗体 我可以处理鼠标滚轮事件,但我不确定在处理它们以启用窗口滚动后如何处理它们。捕获鼠标滚轮事件后,只需调用正在滚动的控件的SetDisplayRectLocation()。差不多 myControl.SetDisplayRectLo

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

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


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

捕获鼠标滚轮事件后,只需调用正在滚动的控件的SetDisplayRectLocation()。差不多

myControl.SetDisplayRectLocation(
            myControl.DisplayRectangle.X, 
            myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
          );
(ScrollAmount是您定义的一个常量--从30像素开始)

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


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

捕获鼠标滚轮事件后,只需调用正在滚动的控件的SetDisplayRectLocation()。差不多

myControl.SetDisplayRectLocation(
            myControl.DisplayRectangle.X, 
            myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
          );
(ScrollAmount是您定义的一个常量--从30像素开始)

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

(对不起,这是C#——我不知道VB语法)