在我的 WPF
应用程序 我正在 lostfocus
中做一些输入验证事件 textbox
控制。如果文本不符合正确的标准,我会清除 textbox
中的文本。 .这很好用。我遇到的问题是在查看消息框后将焦点返回到控件。例如,当我使用下面的代码时,文本框焦点方法在我关闭消息框后重新触发失去焦点事件。
private void TaskNameBox_LostFocus(object sender, RoutedEventArgs e)
{
... validation logic here
MessageBox.Show("Message.", "Error", MessageBoxButton.OK);
TaskNameBox.Focus();
}
我不知道为什么 Focus 方法会重新触发丢失的焦点事件,但是我需要一种方法在失去它后将焦点重新放在 TaskNameBox 控件上。任何建议将不胜感激。我是新来的
WPF
.
最佳答案
使用它如下:
private void TaskNameBox_LostFocus(object sender, RoutedEventArgs e)
{
... validation logic here
MessageBox.Show("Message.", "Error", MessageBoxButton.OK);
Dispatcher.BeginInvoke((ThreadStart)delegate
{
TaskNameBox.Focus();
});
}
关于wpf - 如何从同一控件的丢失焦点事件中将焦点返回到 WPF 中的控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466802/