winforms 组合框上的MouseWheel事件触发KeyDown事件

bbmckpt7  于 2023-05-29  发布在  其他
关注(0)|答案(2)|浏览(133)

创建一个Windows窗体(Net Framework或Net Core)并添加一个带有ToolStripComboBox控件的Toolstrip。然后添加这些方法:

public Form1()
{
    InitializeComponent();
    KeyDown += Form1_KeyDown;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    //any code here;
}

如果Form KeyPreview = false,则ToolstripComboBox上的MouseWheel事件不会触发 Form1_KeyDown 事件。设置 KeyPreview = true(必须)会导致MouseWheel事件被Form1_KeyDown处理程序捕获为 UpDown
有没有办法阻止 Form_KeyDown handlerNot To Handle MouseWheel事件?

vlurs2pr

vlurs2pr1#

都使用这里的注解作为源代码,并参考代码知识,对此有一个解决方案:

private void Form1_KeyDown(dynamic sender, KeyEventArgs e)
{
    if (sender.GetType().Name != "Form1")
    {
        //code for action...
    }
}
djmepvbi

djmepvbi2#

如果你遇到同样的问题,请这样写代码来区分:

ActiveControl.GetType().Name != "ToolStripComboBoxControl"

相关问题