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 处理程序捕获为 Up 或 Down.
有没有办法防止 Form_KeyDown 处理程序 不处理 MouseWheel 事件?
同时使用此处的注释作为源代码并参考 vs 代码知识,一种解决方案:
private void Form1_KeyDown(dynamic sender, KeyEventArgs e)
{
if (sender.GetType().Name != "Form1")
{
//code for action...
}
}
创建一个 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 处理程序 不处理 MouseWheel 事件?
同时使用此处的注释作为源代码并参考 vs 代码知识,一种解决方案:
private void Form1_KeyDown(dynamic sender, KeyEventArgs e)
{
if (sender.GetType().Name != "Form1")
{
//code for action...
}
}