繁体   English   中英

按下Enter键时忽略动作

[英]Omit action when pressing Enter on button

有没有办法在按下键时忽略对按钮执行的任何操作? 我已经从SO中获得了一些很好的输入,并试图通过OnKeyPress或OnKeyDown来捕获事件-但我不能省略Enter-action。 我也喜欢禁用Tabstop属性的想法,但是一旦单击按钮,问题就会再次发生。

仅当按下“休闲”键(如a或z)时,才会触发OnKeyDown,但在按Enter键时,不会触发。 我如何才能检测到按钮本身(单击Enter时)?

当您按下ENTER非多场内部有默认按钮集的形式,在click这个按钮触发事件,如click ,不喜欢keyeventkeypresskeyupkeydown等)。

Form.AcceptButton

获取或设置用户按下ENTER键时单击的表单上的按钮。

如果您不希望这种行为(或想防止它),也许您应该将其删除为默认按钮。 但是,如果仅在某些情况下需要将其设置为默认值,则可以通过编程方式绑定/取消绑定:

form1.AcceptButton = btnSave;
form1.AcceptButton = null;

您可以使用:if(e.KeyCode == Keys.Enter){}

检查Button.IsDefault属性

好吧,事实是

当您按Enter [...]时,将触发此按钮的单击事件

让我考虑使用OnMouseUp(MouseEventArgs e)方法而不是OnClick(EventArgs e) 我试了一下,它完全符合我的要求-再加上:它使我有机会仅从上述问题中排除包装的按钮,而不涉及应用程序中的任何其他控件(例如Form.AcceptButton )。

感谢您的所有意见,这让我从另一个角度思考了这个问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM