按键时,有没有方法可以省略对按钮执行的(任何)操作?我已经从SO那里得到了一些好的输入,并试图通过OnKeyPress或OnKeyDown捕捉事件,但我不能省略Enter操作。我也喜欢禁用Tabstop属性的想法,但只要我单击按钮,问题就会再次出现。
OnKeyDown似乎只在按下"随意"键(如a或z)时才会触发,但在按下Enter时不会触发。当按下Enter键时,我如何检测按钮本身?
在设置了默认按钮的窗体上的非多行字段中按下ENTER
时,会触发此按钮的click
事件,类似于click
,而不是keyevent
(keypress
、keyup
、keydown
等)。
表单接受按钮
获取或设置当用户按下ENTER键。
如果你不想要这种行为(或者想阻止它),也许你应该将其作为默认按钮删除。但是,如果你只在某些情况下需要它是默认的,你可以用程序绑定/解除绑定:
form1.AcceptButton = btnSave;
form1.AcceptButton = null;
您可以使用:if(e.KeyCode==Keys.Enter){}
检查Button.IsDefault属性
好吧,
当您按下ENTER[…]时,该按钮的点击事件被触发
让我考虑使用OnMouseUp(MouseEventArgs e)
方法而不是OnClick(EventArgs e)
。我尝试了一下,它完全符合我的要求——此外:它让我有机会只将包装好的按钮排除在上述问题之外,而不涉及我的应用程序中的任何其他控件(如Form.AcceptButton
)。
感谢您的投入,这让我从另一个角度思考这个问题!