我的UserControl
里面只有一个TextBox
,这个TextBox
有一些附加属性和一些代码,因为我将在多个视图中使用它,我创建了用UserControl
来改善可重用性和维护。
此TextBox
用于搜索,因此我尝试在用户创建Ctrl+F
时将其设置为焦点,这样可以正常运行,问题是,我无法生成{ {1}}焦点,只有TextBox
得到关注。
所以问题是:如何将UserControl
的{{1}}重定向到其中的Focus
?
我已经尝试过了:
UserControl
以及许多其他不同的组合,例如更改调用TextBox
的顺序,或删除它...调用protected override void OnPreviewGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
this.TextBox.SelectAll();
base.OnPreviewGotKeyboardFocus(e);
}
设置StackOverFlow ...验证base
是否&# 39;工作,总是this.TextBox.Focus()
......所以......我怎么能实现这个目标?
答案 0 :(得分:0)
好的,明白了,我改变了:
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
相互作用都在干扰。