在UserControl中设置文本框的焦点
本文关键字:焦点 置文本 UserControl | 更新日期: 2023-09-27 18:05:20
我有一个UserControl
,里面只有一个TextBox
,这个TextBox
有一些附加的属性和一些后面的代码,因为我要在多个视图中使用它,我用它创建了一个UserControl
,以提高可重用性和维护。
这个TextBox
是用于搜索的,所以我试着把它设置在焦点上,当用户使Ctrl+F
,这工作得很好,问题是,我不能使TextBox
焦点,只是UserControl
得到聚焦。
UserControl
的Focus
重定向到它里面的TextBox
?I tried already:
protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
和许多其他不同的组合,比如改变base
的调用顺序,或者删除它……调用this.TextBox.Focus()
设置一个StackOverFlow…验证this.TextBox.IsFocused
是否不起作用,它总是false
…所以…我怎样才能做到这一点?
好的,明白了,我更改了:
protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
:
protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnGotKeyboardFocus(e);
}
我猜冒泡和隧道的整个RoutedEvents
相互作用是相互干扰的。