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
Adicione dois controles, por exemplo, caixas de texto, a um Windows Form.
Adicione um ErrorProvider componente ao formulário.
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);
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
.NET Desktop feedback