Как выделить весь текст в TextBox WPF, когда фокус? - PullRequest
0 голосов
/ 27 ноября 2018

Я попробовал приведенный ниже код, чтобы выделить весь текст в текстовом поле, когда фокус.Но это не работает.

XAML :

        <TextBox Text="test1" Width="100" Height="200"  
           GotFocus="TextBox_GotFocus"></TextBox>

c #:

private void TextBox_GotFocus(object sender, RoutedEventArgs e)
        {
            (sender as TextBox).SelectAll();    
            //(sender as TextBox).Select(0, (sender as TextBox).Text.Length);
            (sender as TextBox).Focus();  
            e.Handled = true;
        } 

Я пробовал также с асинхронным.Посижу много, но ничего не работает.Пожалуйста, предложите?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вы можете использовать диспетчер:

private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
    TextBox textBox = (TextBox)sender;
    textBox.Dispatcher.BeginInvoke(new Action(() => textBox.SelectAll()));
}
0 голосов
/ 27 ноября 2018

в файле App.xaml

<Application.Resources>
    <Style TargetType="TextBox">
        <EventSetter Event="GotKeyboardFocus" Handler="TextBox_GotKeyboardFocus"/>
    </Style>
</Application.Resources>

в файле App.xaml.cs

private void TextBox_GotKeyboardFocus(Object sender, KeyboardFocusChangedEventArgs e)
{
    TextBox tb = (TextBox)sender;
    tb.Dispatcher.BeginInvoke(new Action(() => tb.SelectAll()));
}

С этим кодом вы получаете доступ ко всем текстовым полям в вашем приложении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...