VB .NET - Usando o controle ErrorProvider


A validação de entrada de dados em formulários Windows Forms pode ser essencial para que os dados sejam realmente válidos.

Neste artigo vou falar sobre o componente ErrorProvider . Ele pode ser usado para realizar a validação dos dados em um formulário Windows. Ele não tem todos os recursos que os controles para validação dos Web Forms mas são uma grande ajuda.

Ele basicamente exibe um pequeno ícone vermelho ao lado do controle que apresenta um erro de validação e quando o usuário passa o mouse sobre o ícone uma mensagem é exibida com informação sobre o dado inválido. Opcionalmente você pode fazer o ícone piscar. Vamos a prática...

Inicie um novo projeto no VB.NET do tipo Windows Application e no formulário padrão insira 4 labels (usar o nome padrão) , 4 caixas de texto : txtNome , txtEndereco, txtIdade e txtTelefone e dois Buttons: cmdOK e CmdCancela ,  conforme figura 1.0 abaixo:

Fig 1.0 - Formulário de entrada de dados Fig 2.0 - Componente ErrorProvider na ToolBox

Agora , na ToolBox ( fig 2.0) , selecione o controle ErrorProvider e arraste-o para o formulário , ou clique duas vezes sobre ele. Como o controle não é visível em tempo de execução ele fica na barra abaixo do formulário com o nome padrão de ErrorProvider1.(Fig 3.0)

Fig 3.0 -O controle ErrorProvider no tray do formulário Fig 4.0 - As propriedades do controle ErrorProvider

Como você pode observar na figura 4.0 o controle não possui muitas propriedades a serem configuradas. (Note que você pode alterar o ícone a ser exibido).

Para usar efetivamente o controle basta você definir no evento Validating de cada TextBox o código para efetuar a validação do conteúdo e opcionalmente exibir o ícone de erro.(Para validações complexas você pode até usar as expressões regulares).

O método SetError do controle atribui um erro ao controle . Para uma validação onde a entrada for considerada inválida você deve definir o método assim : errorProvider1.SetError(meuControle, "Texto com indicação de erro"); Para limpar o erro simplesmente passe uma string vazia como argumento. Para a caixa de texto nome poderíamos usar o seguinte código :

Assim , se o usuário não informar o nome do cliente ao mudar o foco para o próximo TextBox o controle é acionado exibindo o ícone que exibirá a mensagem de erro quando o usuário passar o mouse sobre o mesmo.

Agora basta repetir o procedimento para os demais campos que desejar validar.

Nota : Para que a validação não ocorra com o botão - Cancelar  - defina a propriedade CausesValidation do botão de comando como False. Se você não fizer isto só vai conseguir cancelar se preencher todos os dados do formulário , e, não é isto que queremos.

Eu sei , é apenas VB .NET , mas eu gosto...


José Carlos Macoratti