Silverlight Программный выбор текста - PullRequest
1 голос
/ 17 марта 2009

Я играю с элементом управления Silverlight, который имеет TextBox и кнопку. Когда я нажимаю кнопку (которая вызывает SelectText ниже), я хочу выделить весь текст в текстовом поле.

Вот мой код:

    private void SelectText()
    {
        TextBox tb = this.txtFirstName;
        tb.SelectionStart = 0;
        tb.SelectionLength = 3;
        // tb.Select(0, this.txtFirstName.Text.Trim().Length - 1);
        // tb.SelectAll();
        // tb.Text = String.Empty;
    }

Закомментированный код - это то, что я уже пробовал, но ни один из них не работает.

У кого-нибудь есть предложения по поводу того, что я делаю неправильно?

Ответы [ 4 ]

4 голосов
/ 17 марта 2009

Вам может понадобиться выделить текстовое поле, чтобы увидеть фактический выбор (до или после выбора, это может не иметь значения, но вам придется попробовать):

private void SelectText()
    {
        TextBox tb = this.txtFirstName;
        tb.SelectionStart = 0;
        tb.SelectionLength = 3;
        // tb.Select(0, this.txtFirstName.Text.Trim().Length - 1);
        // tb.SelectAll();
        // tb.Text = String.Empty;
        tb.Focus();
    }
1 голос
/ 10 января 2012

Это делает трюк для всего пользовательского элемента управления.

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();
    }
    protected override void OnGotFocus(RoutedEventArgs e)
    {
        TextBox tb = e.OriginalSource as TextBox;
        if (tb != null)
            tb.SelectAll();
        base.OnGotFocus(e);
    }
}
1 голос
/ 17 марта 2009

SelectAll () работает - я использовал его более одного раза. Что-то манипулирует текстовым полем после того, как этот метод происходит?

0 голосов
/ 23 апреля 2009

Решение для фокуса сработало для меня, но иногда я получаю исключение ExecutionEngineException во время SelectAll (), и оно полностью поддельное! Даже попытка ... поймать не остановит, и больше нет подробностей об ошибке.

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