我的表单上有2个输入框。如果用户输入数据,他可以按Enter键查看它们是否正确,或者在另一种情况下,消息框将显示错误。现在我有一个小问题。当消息框出现并且用户按下回车键时,msgbox将消失并立即显示另一个消息。我想消失,让用户更改他们的数据。我该如何解决这个问题? 我尝试以这种方式解决这个问题:我添加了不可见的文本框,当用户按下输入时,此文本框获得焦点,如果出现错误,则会出现msgbox并且最终发件人获得焦点。 代码:
private void login(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
focus.Focus();
if (password.Password == "" || account.Text == "")
{
MessageBoxResult result = MessageBox.Show("Fill login and password.");
}
if(sender.GetType() == account.GetType())
((TextBox)sender).Focus();
else
((PasswordBox)sender).Focus();
}
}
答案 0 :(得分:1)
尝试设置 e.Handled = true; 以防止将按键传播到文本框。
答案 1 :(得分:1)
试试这个:
if (e.Key == Key.Enter && !string.IsNullOrWhiteSpace(txtPass.Text))
{
if (1 + 1 != 3)
{
MessageBox.Show("Wrong!!!");
txtPass.Clear();
txtPass.Focus();
}
}