代码之家  ›  专栏  ›  技术社区  ›  PaulStock

如何在WinForms应用程序中使用mousewheel滚动MDI父窗口

  •  1
  • PaulStock  · 技术社区  · 15 年前

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

    但是,鼠标跟对这个滚动条没有影响。我怎样才能让鼠标滚轮滚动儿童窗体?

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

    1 回复  |  直到 12 年前
        1
  •  1
  •   LarsTech    12 年前

    捕获mousewheel事件后,只需调用正在滚动的控件的setDisplayRectLocation()。类似的东西

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

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

    您还需要调用主窗体上的AdjustFormScrollBars()来更新滚动条的位置。

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

    推荐文章
    Tyler B  ·  MDI子窗体未显示
    7 年前