quinta-feira, 16 de agosto de 2007

Validações de formulários... simplificado...

Validar formulários sempre foi, e será, uma tarefa desagradável.

Quantas linhas de código escritas em cada formulário para validar se uma textbox tem o valor esperado, antes de gravar na base de dados?

E se existisse um componente que fosse arrastado para o form e que automáticamnte validasse as textbox, independentemente do tipo de informação que se espera delas?

Pois é isso mesmo que é utilizado no HRM. Validators!!!
Nem pensem que vou escrever mais linhas de código para validar se o utilizador escreveu alguma informação na designação de um formulário.

O namespace HRM.Components.Windows.Forms incorpora 3 validators:

  • RangeValidator - valida valores mínimos e máximos
  • RegularExpressionValidator - valida utilizando expressões regulares
  • RequiredFieldValidator - valida campos obrigatórios


Como utilizar os Validators?

Num form, adicionar uma textbox (txtname), command button(cmdOk) e um RequiredFieldValidator(RequiredFieldValidator1).

Na propriedade ControltoValidate do RequiredFieldValidator1 definir txtname e em ErrorMessage a mensagem que pretendem mostrar ao utilizador.

No evento click do cmdOk, insiram o seguinte código:

If BaseValidator.IsFormValid(Me.components) Then
Me.Close()
Else
MessageBox.Show("Ocorreram erros na validação do formulário.", "Validação do formulário", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If

Agora, para testar, compilem e tentem selecionar o cmdOk sem preencher a txtName, para verem a validação mostrar ao utilizador que algo não está correcto.



Muito mais fácil e cómodo! Sem desculpas para não validar formulários.
Poderão também criar outro tipo de Validators para satisfazer as vossas necessidades específicas.

2 comentários:

Anônimo disse...

Talvez mensagens individuais para cada campo de texto seria bom: num formulario de grandes dimensoes, "Ocorreram erros na validação do formulário" pode ser um pouco vago.

Rui Ribeiro disse...

Olá Patrick... obrigado pela tua participação...

Concorso contigo... mas este foi apenas um exemplo... o ideal é uma mensagem para cada campo.