我正在Visual Studio c#WinForms中制作一个答题器游戏,当您单击按钮一次后,您可以按住Enter键以赚钱,我想禁用它。
答案 0 :(得分:2)
Assuming,您正在使用WinForms作为GUI框架,只需添加以下一行代码:
this.Focus();
在按钮末尾单击事件处理程序。
现在,它有什么作用?好吧,当您单击WinForms中的任何内容时,该元素将获得焦点,如果Button具有焦点,则按Enter意味着将其激活。通过执行this.Focus();
,我们将焦点重新设置为“表单”而不是“按钮”
答案 1 :(得分:1)
根据要捕获事件的位置,在按钮内还是必须“拦截”要查找的键
if (e.KeyChar== 13 )
{
// Do something else or nothing
}
13 =回车
答案 2 :(得分:0)
您可以将添加资金的事件从“ this.keyDown”更改为“ this.KeyUp”。 这样一来,只有在释放按钮后(第一次按下后),事件才会触发。这使得按住“输入”按钮无效,因为您必须在发生某些事情之前将其释放。
这仍然允许玩家仅敲击“ enter”键而不是快速单击,但这可能值得考虑,因为此方法不会完全禁用“ enter”键