簡體   English   中英

在UserControl內設置TextBox的焦點

[英]Set Focus of TextBox inside UserControl

我有一個UserControl其中只有一個TextBox ,該TextBox具有一些附加的屬性和一些代碼,由於我打算在多個視圖中使用它,因此我創建了一個UserControl以提高可重用性和維護性。

TextBox用於搜索,因此我嘗試在用戶進行Ctrl+F時將其設置為Focus,這很好用,問題是,我無法使TextBox焦點,只是UserControl獲得了焦點。

所以問題是:如何將UserControlFocus重定向到其中的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM