How to select all text in a WPF TextBox when focused from codebehind?

onfocus, selection, textbox, wpf

Solution

You will have to set `Keyboard` focus on the `TextBox` before selecting the text

Example:

private static void SelectAllText(object sender, RoutedEventArgs e)
{
    var textBox = e.OriginalSource as TextBox;
    if (textBox != null)
    {
        Keyboard.Focus(textBox);
        textBox.SelectAll();
    }    
}

Problem

I would like to set the focus of a WPF `TextBox` from codebehind (not the `TextBox`'s codebehind, but some parent control) and select all text in the `TextBox` from the `TextBox`s codebehind when it receives that focus. I focus the `TextBox` like this: ``` var scope = FocusManager.GetFocusScope(txt); FocusManager.SetFocusedElement(scope, txt); ``` and listen to the event in the `TextBox` like this in the `TextBox`s codebehind: ``` AddHandler(GotFocusEvent, new RoutedEventHandler(SelectAllText), true); ``` and try to select the text like this: ``` private static void SelectAllText(object sender, RoutedEventArgs e) { var textBox = e.OriginalSource as TextBox; if (textBox != null) textBox.SelectAll(); } ``` But the text doesn't get selected. How can I modify this to work as I'd like it to?

Original source