如何从代码背后聚焦时如何选择WPF TextBox中的所有文本?

时间:2013-04-15 19:15:33

标签: wpf textbox selection onfocus

我想从代码隐藏(不是TextBox的代码隐藏,而是一些父控件)设置WPF TextBox的焦点,并选择TextBox中的所有文本TextBox收到焦点时的代码隐藏。

我像这样关注TextBox

var scope = FocusManager.GetFocusScope(txt);
FocusManager.SetFocusedElement(scope, txt);

并在TextBox代码隐藏中听取TextBox中的事件:

AddHandler(GotFocusEvent, new RoutedEventHandler(SelectAllText), true);

并尝试选择如下文字:

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

但是文字没有被选中。如何修改它以便按照我的意愿工作?

1 个答案:

答案 0 :(得分:14)

在选择文字

之前,您必须将Keyboard重点放在TextBox

示例:

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