Ciao gugoXX
In generale io faccio così:
Parto anche io dal presupposto di cercare di impedire a priori l'inserimento di input non valido anzichè controllarlo successivamente.
per fare questo, solitamente uso l'evento KeyPressEventArgs in modo tale che se l'utente si trova su una casella che accetti solo numeri, non possa neanche per sbaglio inserire una lettera (e quindi se ad esempio ho 20 textbox devo gestire 20 eventi KeyPressEventArgs).
Quello che a me non piace però, è dover gestire appunto un evento per ogni singolo controllo.
Pensavo di generalizzare la validazione almeno per due aspetti:
1) Non lasciare un campo obbligatorio vuoto
2) Avere il focus sull'oggetto dove c'è l'eccezione
Stavo ragionando in questi termini:
Codice:
public class ProvaValidazione
{
private const string emptyFieldMessage = "CAMPO OBBLIGATORIO";
public static bool IsValid(TextBox t)
{
if(t.Text.Length != 0)
{
SomeErrorProvider.Clear();
return true;
}
else
{
SomeErrorProvider.SetError(t, emptyFieldMessage);
return false;
}
}
}
Logicamente però... fa schifo
Infatti se devo validare i dati alla pressione del tasto conferma, se per esempio mi trovassi ad avere 20 textbox, dovrei fare:
Codice:
(if(IsValid(txtCognome) && IsValid(txtNome) && blablabla...
ho vergogna di me stesso.....