Condividi tramite


Procedura: Visualizzare icone di errore per la convalida del modulo con il componente ErrorProvider di Windows Form

È possibile utilizzare un componente ErrorProvider Windows Form per visualizzare un'icona di errore quando l'utente immette dati non validi. È necessario disporre di almeno due controlli nel modulo per navigare tra di essi e quindi richiamare il codice di convalida.

Per visualizzare un'icona di errore quando il valore di un controllo non è valido

  1. Aggiungere due controlli, ad esempio caselle di testo, a un Windows Form.

  2. Aggiungere un componente ErrorProvider al modulo.

  3. Selezionare il primo controllo e aggiungere codice al relativo gestore eventi Validating. Affinché questo codice venga eseguito correttamente, la routine deve essere connessa all'evento . Per ulteriori informazioni, vedere Come: Creare gestori di eventi in fase di esecuzione per Windows Forms.

    Il codice seguente verifica la validità dei dati immessi dall'utente; se i dati non sono validi, viene chiamato il metodo SetError. Il primo argomento del metodo SetError specifica il controllo da visualizzare accanto all'icona. Il secondo argomento è il testo dell'errore da visualizzare.

    Private Sub TextBox1_Validating(ByVal Sender As Object, _
       ByVal e As System.ComponentModel.CancelEventArgs) Handles _
       TextBox1.Validating
          If Not IsNumeric(TextBox1.Text) Then
             ErrorProvider1.SetError(TextBox1, "Not a numeric value.")
          Else
             ' Clear the error.
             ErrorProvider1.SetError(TextBox1, "")
          End If
    End Sub
    
    protected void textBox1_Validating (object sender,
       System.ComponentModel.CancelEventArgs e)
    {
       try
       {
          int x = Int32.Parse(textBox1.Text);
          errorProvider1.SetError(textBox1, "");
       }
       catch (Exception ex)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    private:
       System::Void textBox1_Validating(System::Object ^  sender,
          System::ComponentModel::CancelEventArgs ^  e)
       {
          try
          {
             int x = Int32::Parse(textBox1->Text);
             errorProvider1->SetError(textBox1, "");
          }
          catch (System::Exception ^ ex)
          {
             errorProvider1->SetError(textBox1, "Not an integer value.");
          }
       }
    

    (Visual C#, Visual C++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. Esegui il progetto. Digitare dati non validi (in questo esempio, non numerici) nel primo controllo e quindi premere Tab per passare al secondo controllo. Quando viene visualizzata l'icona di errore, puntarla con il puntatore del mouse per visualizzare il testo dell'errore.

Vedere anche