鼠标滚轮事件在组合框触发KeyDown事件



创建一个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 = falseForm1_KeyDown事件不会与ToolstripComboBox上的MouseWheel事件一起触发。设置KeyPreview = true(是必要的)会导致MouseWheel事件被Form1_KeyDown处理程序捕获为UpDown

是否有办法防止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"

相关内容

  • 没有找到相关文章

最新更新