【问题标题】:How to use MouseWheel to scroll MDI parent window in Winforms app如何使用 MouseWheel 在 Winforms 应用程序中滚动 MDI 父窗口
【发布时间】:2009-06-10 17:23:36
【问题描述】:
我有一个 VB.Net Winforms 应用程序,它显示一个 MDI 父窗体并允许在其上显示多个子窗体。如果子窗体超出屏幕高度,则会在 MDI Parent 的右侧自动显示一个垂直滚动条,我可以使用此滚动条将子窗体滚动到视图中。
但是,鼠标滚轮对这个滚动条没有影响。如何让鼠标滚轮滚动子窗体?
我可以处理鼠标滚轮事件,但我不知道在处理它们以启用窗口滚动后如何处理它们。
【问题讨论】:
标签:
winforms
mousewheel
mdiparent
【解决方案1】:
捕获鼠标滚轮事件后,只需调用正在滚动的控件的 SetDisplayRectLocation()。类似的东西
myControl.SetDisplayRectLocation(
myControl.DisplayRectangle.X,
myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
);
(ScrollAmount 是您定义的常数——从 30 像素开始)。
您还需要在主窗体上调用 AdjustFormScrollbars() 来更新滚动条位置。
(对不起,那是 C#——我不懂 VB 语法)