gpt4 book ai didi

c# - 在 AutoScroll 面板上预览鼠标滚轮

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:45 25 4
gpt4 key购买 nike

让我们有一个大Control (其 Size 是外部给出的,“不能”更改)。这Control包含在 Panel 中.有一个非常有用的功能Panel.Autoscroll = true ,这样可以舒适地滚动大 Control零工作。

有一个问题:Control需要处理 MouseWheel (并且它按预期获得事件 - 它专注于鼠标输入)。不幸的是Panel 捕获相同的鼠标滚轮事件并使用它们进行滚动。这对于 Control 的情况是不可取的“消耗”事件。

我找不到处理这个问题的标准方法。即使是 Panel.Scroll仅在鼠标单击滚动时调用事件,而不会在鼠标滚轮滚动时调用。

是否有一种自然的 WinForms 友好方式来临时指示 PanelAutoScroll设置为 true 不处理滚动的鼠标滚轮事件?

最佳答案

用这个版本的 AutoScroll = True 替换你的面板,它注释掉了对 OnMouseWheel 方法的基本调用:

public class PanelEx: Panel {
protected override void OnMouseWheel(MouseEventArgs e) {
//base.OnMouseWheel(e);
}
}

或者正如 Hans 在他的 linked answer 中指出的那样,在您的控件中将 Handled 属性设置为 true:

protected override void OnMouseWheel(MouseEventArgs e) {
base.OnMouseWheel(e);
((HandledMouseEventArgs)e).Handled = true;
}

关于c# - 在 AutoScroll 面板上预览鼠标滚轮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com