【发布时间】:2012-05-01 16:44:20
【问题描述】:
我的表单上有 2 个输入框。如果用户输入数据,他可以按回车键查看它们是否正确,否则会出现错误消息框。现在我有一个小问题。当 messagebox 出现并且用户按下回车键时,msgbox 消失并立即出现另一个。我想消失,让用户更改他们的数据。我该如何解决? 我试图以这种方式解决这个问题:我添加了不可见的文本框,当用户按下 Enter 时,此文本框获得焦点,如果出现错误 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();
}
}
【问题讨论】:
-
为什么不使用 WPF 验证(IDataErrorInfo 等)?
标签: c# wpf textbox focus messagebox