Compartilhar via


Como exibir ícones de erro para validação do formulário com o componente ErrorProvider dos Windows Forms

Você pode usar um componente do Windows Forms ErrorProvider para exibir um ícone de erro quando o usuário insere dados inválidos. Você deve ter pelo menos dois controles no formulário para alternar entre eles e, portanto, invocar o código de validação.

Para exibir um ícone de erro quando o valor do controle é inválido

  1. Adicione dois controles, por exemplo, caixas de texto, a um Windows Form.

  2. Adicione um ErrorProvider componente ao formulário.

  3. Selecione o primeiro controle e adicione código ao manipulador Validating de eventos. Para que esse código seja executado corretamente, o procedimento deve estar conectado ao evento. Para saber mais, veja Como criar manipuladores de eventos em tempo de execução para formulários dos Windows Forms.

    O código a seguir testa a validade dos dados inseridos pelo usuário; Se os dados forem inválidos, o SetError método será chamado. O primeiro argumento do método especifica qual SetError controle exibir o ícone ao lado. O segundo argumento é o texto do erro a ser exibido.

    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++) Coloque o seguinte código no construtor do formulário para registrar o manipulador de eventos.

    this.textBox1.Validating += new  
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);  
    
    this->textBox1->Validating += gcnew  
       System::ComponentModel::CancelEventHandler  
       (this, &Form1::textBox1_Validating);  
    
  4. Execute o projeto . Digite dados inválidos (neste exemplo, não numéricos) no primeiro controle e alterne para o segundo. Quando o ícone de erro for exibido, aponte para ele com o ponteiro do mouse para ver o texto do erro.

Confira também