我制作了一个在 TabPages 中使用 PictureBoxes 的 MDI(选项卡式)应用程序。图片框有时比标签页大,因此会出现滚动条。它是使用 Windows 窗体用 C# 编写的。
在我的标签页中,我在 MouseWheel 事件中捕获和处理鼠标滚轮事件(我用它来旋转我在图片框中绘制的一些对象)。
但是当我有滚动条时,当我旋转鼠标滚轮时,我的对象会旋转,但标签页也会向下滚动。
如何使标签页不处理鼠标滚轮事件,从而使其不向下滚动?我希望它只有在用户单击并拖动滚动条时才能滚动。
我制作了一个在 TabPages 中使用 PictureBoxes 的 MDI(选项卡式)应用程序。图片框有时比标签页大,因此会出现滚动条。它是使用 Windows 窗体用 C# 编写的。
在我的标签页中,我在 MouseWheel 事件中捕获和处理鼠标滚轮事件(我用它来旋转我在图片框中绘制的一些对象)。
但是当我有滚动条时,当我旋转鼠标滚轮时,我的对象会旋转,但标签页也会向下滚动。
如何使标签页不处理鼠标滚轮事件,从而使其不向下滚动?我希望它只有在用户单击并拖动滚动条时才能滚动。
子类TabPage
化并覆盖WndProc()
忽略WM_MOUSEWHEEL
消息的方法:
public class MyTabPage : TabPage
{
private const int WM_MOUSEWHEEL = 0x20a;
protected override void WndProc(ref Message m)
{
// ignore WM_MOUSEWHEEL events
if (m.Msg == WM_MOUSEWHEEL)
{
return;
}
base.WndProc(ref m);
}
}
然后使用您的MyTabPage
子类代替标准TabPage
。