Udostępnij za pośrednictwem


Porady: zaznaczanie tekstu w formancie TextBox formularzy systemu Windows

Tekst można zaznaczyć programowo w kontrolce Formularze TextBox systemu Windows. Jeśli na przykład utworzysz funkcję, która wyszukuje tekst dla określonego ciągu, możesz wybrać tekst, aby wizualnie powiadomić czytelnika o pozycji znalezionego ciągu.

Aby programowo zaznaczyć tekst

  1. SelectionStart Ustaw właściwość na początek tekstu, który chcesz zaznaczyć.

    Właściwość SelectionStart jest liczbą wskazującą punkt wstawiania w ciągu tekstu, a wartość 0 jest pozycją najwięcej po lewej stronie. SelectionStart Jeśli właściwość jest ustawiona na wartość równą lub większą niż liczba znaków w polu tekstowym, punkt wstawiania jest umieszczany po ostatnim znaku.

  2. SelectionLength Ustaw właściwość na długość tekstu, który chcesz zaznaczyć.

    Właściwość SelectionLength jest wartością liczbową, która ustawia szerokość punktu wstawiania. SelectionLength Ustawienie wartości na liczbę większą niż 0 powoduje wybranie tej liczby znaków, począwszy od bieżącego punktu wstawiania.

  3. (Opcjonalnie) Uzyskaj dostęp do zaznaczonego SelectedText tekstu za pośrednictwem właściwości .

    Poniższy kod wybiera zawartość pola tekstowego po wystąpieniu zdarzenia kontrolki Enter . W tym przykładzie sprawdza się, czy pole tekstowe ma wartość właściwości Text , która nie null jest pustym ciągiem. Gdy pole tekstowe odbierze fokus, zaznaczony jest bieżący tekst w polu tekstowym. Procedura TextBox1_Enter obsługi zdarzeń musi być powiązana z kontrolką. Aby uzyskać więcej informacji, zobacz How to: Create Event Handlers at Run Time for Windows Forms (Jak tworzyć programy obsługi zdarzeń w czasie wykonywania formularzy systemu Windows).

    Aby przetestować ten przykład, naciśnij klawisz Tab, dopóki pole tekstowe nie ma fokusu. Po kliknięciu w polu tekstowym tekst jest niezaznaczony.

    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;  
       }  
    }  
    

Zobacz też