当我单击组合框WPF时,PreviewlostkeyboardFocus事件触发两次

当我单击组合框WPF时,PreviewlostkeyboardFocus事件触发两次,wpf,textbox,Wpf,Textbox,我已将PreviewLostKeyboardFocus事件连接到TextBox。我处理了这件事。当我单击组合框控件时,它会触发两次 如果我不处理,它只会开火一次 private void TextBox_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { e.Handled = true; } 有人能帮忙解决这个问题吗 设置时: e.Handled = True; 您有效地阻止了焦点离开

我已将
PreviewLostKeyboardFocus
事件连接到
TextBox
。我处理了这件事。当我单击
组合框
控件时,它会触发两次

如果我不处理,它只会开火一次

private void TextBox_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    e.Handled = true;
}
有人能帮忙解决这个问题吗

设置时:

e.Handled = True;
您有效地阻止了焦点离开文本框

因此,如果焦点位于此文本框中,并且您单击另一个字段(例如ComboBox),则会触发事件,但光标将永远留在文本框中


删除此项或使其有条件。

为什么会出现此问题?你想实现什么?它应该发射一次。如果它出现两次,您应该检查您的代码,看是否有任何东西使焦点回到TextBox。如果有任何内容自动将焦点返回到文本框,请选中与该组合框相关的代码。例如,在您选择了combobox中的一项后,您的代码可以将焦点返回到textbox。@almulo当textbox包含无效数据时,我希望将焦点保留到文本框。@JonKoivula,我们没有编写任何与combobox相关的代码。是的,当文本框包含无效数据时,我不希望焦点离开文本框。如果我也设置条件,PreviewLostKeyboardFocus会被触发两次。一旦新的焦点从ComboBoxItem第二次进入ComboBoxControl,当我点击按钮时,它只会被触发一次。如果它是默认行为。我们有什么解决办法吗?你不需要解决办法。除非验证失败,否则不要将e.Handled设置为True。