C# – 如何防止在我的combobox滚动鼠标滚轮?

我有一个combobox,我想阻止用户通过鼠标滚轮浏览项目。

有没有一个简单的方法来做到这一点?

(C#,VS2008)

为您的ComboBox使用MouseWheel事件:

void comboBox1_MouseWheel(object sender, MouseEventArgs e) { ((HandledMouseEventArgs)e).Handled = true; } 

注意:您必须在代码中创build事件:

 comboBox1.MouseWheel += new MouseEventHandler(comboBox1_MouseWheel); 

我使用另一个也适用于单声道的解决scheme。

目标是防止意外滚动(即当用户在使用鼠标滚轮时没有查看combobox)。 如果他/她在combobox的可见部分之外滚动,combobox不应该滚动,否则应该。

我的解决scheme

  • 在屏幕的可见部分之外放置一个只读文本框。 在form_load我放置行:hiddenTextbox.left = -100;

  • 当鼠标离开combobox使用鼠标离开事件时,将焦点设置到此文本框中。 在comboBox1_MouseLeave中我放置了这一行:hiddenTextbox.focus();

  • 处理mouseWheel事件:From1.MouseWheel + = Form1_MouseWheel; textBoxHidden.MouseWheel + = Form1_MouseWheel;