Procedura: visualizzare le icone di errori per la convalida dei form con il componente ErrorProvider di Windows Form

È possibile usare un componente Windows Form ErrorProvider per visualizzare un'icona di errore quando l'utente immette dati non validi. È necessario disporre di almeno due controlli nel form per tabularli 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 ErrorProvider componente al modulo.

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

    Il codice seguente verifica la validità dei dati immessi dall'utente; se i dati non sono validi, viene chiamato il SetError metodo . Il primo argomento del SetError metodo specifica il controllo a cui visualizzare l'icona accanto. 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. Eseguire il progetto. Digitare dati non validi (in questo esempio, non numerici) nel primo controllo e quindi tabulazione al secondo. Quando viene visualizzata l'icona di errore, posizionarlo con il puntatore del mouse per visualizzare il testo dell'errore.

Vedi anche