Поделиться через


Как выделить текст в элементе управления TextBox в Windows Forms

Вы можете программно выбрать текст в элементе управления Windows Forms TextBox . Например, если вы создаете функцию, которая ищет текст для определенной строки, можно выбрать текст, чтобы визуально оповещать читателя о позиции найденной строки.

Выделение текста программным способом

  1. Установите свойство SelectionStart на начало текста, который вы хотите выделить.

    Свойство SelectionStart — это число, указывающее точку вставки в строке текста, а 0 — левую позицию. SelectionStart Если для свойства задано значение, равное или больше числа символов в текстовом поле, точка вставки помещается после последнего символа.

  2. SelectionLength Задайте для свойства длину текста, который нужно выбрать.

    Свойство SelectionLength является числовым значением, которое задает ширину точки вставки. Установка SelectionLength на число больше 0 приведет к выбору этого количества символов, начиная с текущей точки вставки.

  3. (Необязательно) Можно получить доступ к выделенному тексту через свойство SelectedText.

    Приведенный ниже код выбирает содержимое текстового поля при возникновении события элемента управления Enter . В этом примере проверяется, имеет ли текстовое поле значение свойства Text, которое не равно null и не является пустой строкой. Когда текстовое поле получает фокус, выбирается текущий текст в текстовом поле. Обработчик TextBox1_Enter событий должен быть привязан к элементу управления. Дополнительные сведения см. в статье "Практическое руководство. Создание обработчиков событий во время выполнения для Windows Forms".

    Чтобы проверить этот пример, нажимайте клавишу TAB, пока текстовое поле не будет фокусироваться. Если щелкнуть текстовое поле, текст не выбран.

    Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
       If (Not String.IsNullOrEmpty(TextBox1.Text)) Then
          TextBox1.SelectionStart = 0
          TextBox1.SelectionLength = TextBox1.Text.Length
       End If
    End Sub
    
    private void textBox1_Enter(object sender, System.EventArgs e){
       if (!String.IsNullOrEmpty(textBox1.Text))
       {
          textBox1.SelectionStart = 0;
          textBox1.SelectionLength = textBox1.Text.Length;
       }
    }
    
    private:
       void textBox1_Enter(System::Object ^ sender,
          System::EventArgs ^ e) {
       if (!System::String::IsNullOrEmpty(textBox1->Text))
       {
          textBox1->SelectionStart = 0;
          textBox1->SelectionLength = textBox1->Text->Length;
       }
    }
    

См. также