当按下按键时,有没有办法省略按钮上的(无论如何)执行的操作?我已经从SO获得了一些好的输入,并尝试通过OnKeyPress或OnKeyDown捕获事件 - 但我无法省略Enter-action。我也喜欢禁用Tabstop属性的想法,但是一旦我点击按钮,问题就会重新出现。
OnKeyDown似乎只在按下“随意”键(如a或z)时触发,但在按下Enter时则不会触发。如何检测到它 - 当按下Enter键时 - 按钮本身?
答案 0 :(得分:1)
当你在默认按钮设置的表单上的非多线字段内按ENTER
时,会触发此按钮的click
事件,就像click
一样,而不是像keyevent
(keypress
,keyup
,keydown
等)。
获取或设置用户单击时窗体上的按钮 按ENTER键。
如果您不想要这种行为(或想要阻止它),也许您应将其删除为默认按钮。 但是如果你需要它只在某些情况下是默认的,你可以用编程方式绑定/取消绑定它:
form1.AcceptButton = btnSave;
form1.AcceptButton = null;
答案 1 :(得分:0)
您可以使用:if(e.KeyCode == Keys.Enter){}
答案 2 :(得分:0)
检查Button.IsDefault属性
答案 3 :(得分:0)
嗯,事实是
当您按ENTER [...]时,将触发此按钮的点击事件
让我考虑使用OnMouseUp(MouseEventArgs e)
方法而不是OnClick(EventArgs e)
。我给了它一个镜头,它完全符合我的要求 - 加上:它让我有机会只从所述问题中排除包装的按钮,而不涉及我的应用程序中的任何其他控件(如Form.AcceptButton
)。
感谢您的所有意见,这让我从另一个角度思考问题!