2016-11-25 53 views
1

我有一个标准的按钮,用什么有趣的是,一切都完美的作品:删除可能触发按钮,键盘输入

private void Button_Click(object sender, EventArgs e) 
{ 
    //Whatever, is not important what's in it 
} 

的问题是,当我点击一个按钮,如果经过我按下例如输入键或空格键,它会触发按钮,就像我点击它一样。

我试着搞乱了属性,也没有帮助。 如何防止发生(可能)简单的方法?

答案的人谁需要它(把按钮内):

if (e is MouseEventArgs) 
{ 
    //what you want in for the button to do 
} 
+1

这是WPF或WinForms? –

+0

@Roma它是WinForms – JackIta

回答

2

您可以检查给定EventArgs的类型,如果按钮被点击eMouseEventArgs(将包含有关信息点击),否则只是一个EventArgs

private void button1_Click(object sender, EventArgs e) 
{ 
    if (e is MouseEventArgs) 
    { 
     // Is mouse click 
    } 
    else 
    { 
     // Not mouse click... 
    } 
} 
+0

谢谢!它完美的工作 – JackIta

+0

但这里是事件处理程序的多余调用。 –

+0

@Roma我没有调用任何方法 –

0

虽然利玛窦Umili提供我想我会分享在任何情况下这种解决方案有效解决发现它有用:

只需将焦点从按钮移开到另一个控件即可。此解决方案需要焦点切换到另一个控件。在我的例子中,我使用了一个标签。

private void button2_Click(object sender, EventArgs e) 
    { 
     label1.Focus(); 
    }