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;