我正在开发一个winforms应用程序。我有一个简单的login screen
,当我按enter key
时,我会在KeyUp(...) event
中抓住它,如果凭据无效,我会显示MessageBox
。
之后,当我再次按Enter键时,它被MessageBox和LoginForm捕获,并且存在无限循环,首先消息框消失,然后输入LoginForm并使用无效凭据并再次显示MessageBox。
key event
应仅对MessageBox有效,而不是再次按Enter键再次提交表单。
我该如何处理这种情况?
答案 0 :(得分:2)
您应该处理KeyDown
事件。
当消息框打开时,KeyDown将被它吞噬 (与KeyUp相反,KeyUp将在关闭后触发)
答案 1 :(得分:1)
我建议你创建一个Login按钮来处理凭据验证,然后将按钮设置为表单的Accept Button。它是为处理这类问题而构建的。即按下输入后,就会显示按钮被点击。
请参阅Example。