ComboBox 上的 MouseWheel 事件触发 KeyDown 事件

MouseWheel Event On ComboBox Triggers KeyDown Event

创建一个 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 处理程序捕获为 UpDown.

有没有办法防止 Form_KeyDown 处理程序 不处理 MouseWheel 事件?

同时使用此处的注释作为源代码并参考 vs 代码知识,一种解决方案:

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