gpt4 book ai didi

c# - 如何防止 ToolStripComboBox 中的鼠标滚动?

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:51 24 4
gpt4 key购买 nike

我试图在我的 ToolStripComboBox 中禁用鼠标滚动,我以为我可以捕获鼠标滚轮事件,但是虽然该事件可用于 ComboBox,但它不适用于 ToolStripComboBox。有什么想法吗?

最佳答案

ToolStripComboBox 在其恰当命名的 ComboBox property 中公开了其底层 ComboBox 控件。 .这使我们能够访问未包装到 ToolStripComboBox 中的属性、方法和事件。

而且,正如您可能知道的那样,标准 ComboBox 控件公开了一个 MouseWheel event每次在组合框具有焦点时滚动鼠标滚轮时触发。

将这两件事放在一起,我们可以为 ToolStripComboBox 控件的底层 ComboBox 控件的 MouseWheel 事件添加一个处理程序,并覆盖它的默认行为。

因此,假设您有一个包含 ToolStripToolStripComboBox 的表单,您可以使用类似于以下代码的内容:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

//Attach a handler for the MouseWheel event
ToolStripComboBox1.ComboBox.MouseWheel += new MouseEventHandler(ToolStripComboBox_MouseWheel);
}

private void ToolStripComboBox_MouseWheel(object sender, MouseEventArgs e)
{
//Cast the MouseEventArgs to HandledMouseEventArgs
HandledMouseEventArgs mwe = (HandledMouseEventArgs)e;

//Indicate that this event was handled
//(prevents the event from being sent to its parent control)
mwe.Handled = true;
}
}

或者,当然,您始终可以将现有的 ToolStripComboBox 控件子类化,并按照上面所示的相同方式覆盖其行为。

关于c# - 如何防止 ToolStripComboBox 中的鼠标滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264579/

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