Vorgehensweise: Programmgesteuertes Auswählen von Text im TextBox-Steuerelement in Windows Forms

Sie können Text im Windows Forms-Steuerelement TextBox programmgesteuert auswählen. Wenn Sie beispielsweise eine Funktion erstellen, die Text nach einer bestimmten Zeichenfolge durchsucht, können Sie den Text auswählen, um den Leser visuell über die Position der gefundenen Zeichenfolge zu benachrichtigen.

So wählen Sie Text programmgesteuert aus

  1. Legen Sie die SelectionStart-Eigenschaft auf den Anfang des Texts fest, den Sie auswählen möchten.

    Die SelectionStart-Eigenschaft ist eine Zahl, die die Einfügeposition in der Textzeichenfolge angibt, wobei 0 die Position ganz links ist. Wenn die SelectionStart-Eigenschaft auf einen Wert festgelegt wird, der gleich oder größer ist als die Anzahl der Zeichen im Textfeld, wird die Einfügemarke hinter dem letzten Zeichen platziert.

  2. Legen Sie die Eigenschaft SelectionLength auf die Länge des Texts fest, den Sie auswählen möchten.

    Die SelectionLength-Eigenschaft ist ein numerischer Wert, der die Breite der Einfügemarke festlegt. Wenn Sie SelectionLength auf eine Zahl festlegen, die größer als 0 ist, wird die angegebene Anzahl von Zeichen ab der aktuellen Einfügemarke ausgewählt.

  3. (Optional) Greifen Sie über die SelectedText-Eigenschaft auf den ausgewählten Text zu.

    Der folgende Code wählt den Inhalt eines Textfelds aus, wenn das Enter-Ereignis des Steuerelements auftritt. In diesem Beispiel wird überprüft, ob das Textfeld einen Wert für die Text-Eigenschaft aufweist, der nicht null oder eine leere Zeichenfolge ist. Wenn das Textfeld den Fokus erhält, wird der aktuelle Text im Textfeld ausgewählt. Der TextBox1_Enter-Ereignishandler muss an das Steuerelement gebunden werden. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von Ereignishandlern für Windows Forms zur Laufzeit.

    Um dieses Beispiel zu testen, drücken Sie die TAB-TASTE, bis das Textfeld den Fokus hat. Wenn Sie in das Textfeld klicken, wird die Textauswahl aufgehoben.

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

Weitere Informationen