Condividi tramite


Procedura: Selezionare testo nel controllo TextBox di Windows Form

È possibile selezionare testo a livello di codice nel controllo Windows Forms TextBox. Ad esempio, se si crea una funzione che cerca testo per una determinata stringa, è possibile selezionare il testo per avvisare visivamente il lettore della posizione della stringa trovata.

Per selezionare il testo a livello di codice

  1. Impostare la proprietà SelectionStart all'inizio del testo che si desidera selezionare.

    La proprietà SelectionStart è un numero che indica il punto di inserimento all'interno della stringa di testo, con 0 come posizione più a sinistra. Se la proprietà SelectionStart è impostata su un valore uguale o maggiore del numero di caratteri nella casella di testo, il punto di inserimento viene posizionato dopo l'ultimo carattere.

  2. Impostare la proprietà SelectionLength sulla lunghezza del testo che si desidera selezionare.

    La proprietà SelectionLength è un valore numerico che imposta la larghezza del punto di inserimento. Se si imposta il SelectionLength su un numero maggiore di 0, tale numero di caratteri viene selezionato a partire dal punto di inserimento corrente.

  3. (Facoltativo) Accedere al testo selezionato tramite la proprietà SelectedText.

    Il codice seguente seleziona il contenuto di una casella di testo quando si verifica l'evento Enter del controllo. In questo esempio viene verificato se la casella di testo ha un valore per la proprietà Text che non è null o una stringa vuota. Quando la casella di testo riceve lo stato attivo, viene selezionato il testo corrente nella casella di testo. Il gestore eventi TextBox1_Enter deve essere associato al controllo; Per altre informazioni, vedere Procedura: Creare gestori eventi in fase di esecuzione per Windows Form.

    Per testare questo esempio, premere il tasto Tab finché la casella di testo non ha lo stato attivo. Se si fa clic nella casella di testo, il testo viene deselezionato.

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

Vedere anche