在winforms应用程序中捕获EnterU上的KeyUp事件

时间:2013-06-12 15:52:04

标签: winforms events

我正在开发一个winforms应用程序。我有一个简单的login screen,当我按enter key时,我会在KeyUp(...) event中抓住它,如果凭据无效,我会显示MessageBox。 之后,当我再次按Enter键时,它被MessageBox和LoginForm捕获,并且存在无限循环,首先消息框消失,然后输入LoginForm并使用无效凭据并再次显示MessageBox。 key event应仅对MessageBox有效,而不是再次按Enter键再次提交表单。

我该如何处理这种情况?

2 个答案:

答案 0 :(得分:2)

您应该处理KeyDown事件。

当消息框打开时,KeyDown将被它吞噬 (与KeyUp相反,KeyUp将在关闭后触发)

答案 1 :(得分:1)

我建议你创建一个Login按钮来处理凭据验证,然后将按钮设置为表单的Accept Button。它是为处理这类问题而构建的。即按下输入后,就会显示按钮被点击。

请参阅Example