创建一个Windows窗体(Net Framework或Net Core),并使用ToolStripComboBox控件添加一个工具条。然后添加这些方法:
public Form1()
{
InitializeComponent();
KeyDown += Form1_KeyDown;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
//any code here;
}
如果Form KeyPreview = false则Form1_KeyDown事件不会与ToolstripComboBox上的MouseWheel事件一起触发。设置KeyPreview = true(是必要的)会导致MouseWheel事件被Form1_KeyDown处理程序捕获为Up或Down。
是否有办法防止Form_KeyDown handler 不处理MouseWheel事件吗?
在这里使用注释作为源代码和引用vs代码知识,一个解决方案:
private void Form1_KeyDown(dynamic sender, KeyEventArgs e)
{
if (sender.GetType().Name != "Form1")
{
//code for action...
}
}
来这里有同样的问题,请像这样编码来区分:
ActiveControl.GetType().Name != "ToolStripComboBoxControl"