Partager via


Guide pratique pour sélectionner du texte dans le contrôle Zone de texte Windows Forms

Vous pouvez sélectionner du texte par programmation dans le contrôle TextBox Windows Forms. Par exemple, si vous créez une fonction qui recherche du texte pour une chaîne particulière, vous pouvez sélectionner le texte pour alerter visuellement le lecteur de la position de la chaîne trouvée.

Pour sélectionner du texte par programmation

  1. Définissez la propriété SelectionStart sur le début du texte que vous souhaitez sélectionner.

    La propriété SelectionStart est un nombre qui indique le point d’insertion dans la chaîne de texte, avec 0 étant la position la plus à gauche. Si la propriété SelectionStart est définie sur une valeur égale ou supérieure au nombre de caractères dans la zone de texte, le point d’insertion est placé après le dernier caractère.

  2. Définissez la propriété SelectionLength sur la longueur du texte que vous souhaitez sélectionner.

    La propriété SelectionLength est une valeur numérique qui définit la largeur du point d’insertion. La définition de la SelectionLength sur un nombre supérieur à 0 entraîne la sélection de ce nombre de caractères à partir du point d’insertion actuel.

  3. (Facultatif) Accédez au texte sélectionné via la propriété SelectedText.

    Le code ci-dessous sélectionne le contenu d’une zone de texte lorsque l’événement Enter du contrôle se produit. Cet exemple vérifie si la zone de texte a une valeur pour la propriété Text qui n’est pas null ou une chaîne vide. Lorsque la zone de texte reçoit le focus, le texte actuel de la zone de texte est sélectionné. Le gestionnaire d’événements TextBox1_Enter doit être lié au contrôle. Pour plus d’informations, consultez Aide et Astuces : créer des gestionnaires d'événements au moment de l'exécution pour Windows Forms.

    Pour tester cet exemple, appuyez sur Tab jusqu’à ce que la zone de texte ait le focus. Si vous cliquez dans la zone de texte, le texte n’est pas sélectionné.

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

Voir aussi