[英]Set Focus of TextBox inside UserControl
我有一个UserControl
其中只有一个TextBox
,该TextBox
具有一些附加的属性和一些代码,由于我打算在多个视图中使用它,因此我创建了一个UserControl
以提高可重用性和维护性。
此TextBox
用于搜索,因此我尝试在用户进行Ctrl+F
时将其设置为Focus,这很好用,问题是,我无法使TextBox
焦点,只是UserControl
获得了焦点。
所以问题是:如何将UserControl
的Focus
重定向到其中的TextBox
?
我已经尝试过了:
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
的整个RoutedEvents
交互都是干扰的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.