Validation de la saisie
Introduction
Le principe général de toute application est de prendre des données en entrée et de fournir des données traitées en sortie. Ces données peuvent provenir de différentes sources et avant de pouvoir les traiter, il faut les valider afin de s’assurer de leur format et ainsi améliorer la fiabilité de l’application.
Dans le cas des formulaires et donc de données saisies par un utilisateur, la validation et le contrôle vont pouvoir se faire au niveau des champs de saisie et aussi au niveau du formulaire. En plus de la validation et donc de l’interception des erreurs de saisie, il faut faire un retour explicatif pour l’utilisateur afin que celui-ci puisse corriger ses données.
La validation au niveau des champs
1. Les propriétés de validation
La validation au niveau des champs vérifie les données saisies au fur et à mesure par l’utilisateur. Certaines propriétés des champs vont permettre de limiter la saisie de l’utilisateur à l’exemple de la propriété MaxLength des contrôles de type TextBox.
Cette propriété, une fois définie, empêche l’utilisateur de saisir plus de caractères. On a donc une première validation native des contrôles de type TextBox qui évite d’écrire du code supplémentaire pour détecter le nombre de caractères saisis.
Les propriétés des contrôles permettent de faire de simples limitations dans la saisie sans pour autant gérer tous les cas. Si un champ doit avoir comme entrée un code postal, la propriété MaxLength du champ de type TextBox pour la saisie de cette donnée permettra de limiter l’utilisateur à la saisie de cinq caractères au maximum mais rien ne l’empêchera d’en saisir moins ou de saisir un autre caractère que des chiffres. Les événements liés au clavier seront donc utiles pour valider la saisie.
2. Les événements de validation
Les événements clavier comme KeyDown, KeyUp ou KeyPress sont déclenchés pour le contrôle qui a le focus au moment de la saisie et suivant le cas lorsqu’une touche est enfoncée, relâchée ou pressée, c’est-à-dire enfoncée puis relâchée....
La validation au niveau du formulaire
La validation au niveau du formulaire consiste à effectuer le test des données saisies en une seule fois avant la fermeture du formulaire. Le principe est de parcourir tous les contrôles afin de déterminer quelles sont les erreurs et de les afficher à l’utilisateur en une seule fois. De plus, certaines données d’un formulaire n’ont de sens que si elles sont mises ensemble et pas seulement les unes séparées des autres. En outre, un champ qui ne doit pas rester vide, et qui n’aurait pas reçu le focus, pourrait être non rempli au moment de la fermeture du formulaire.
Un formulaire possédant un bouton de validation permet d’effectuer les contrôles souhaités pour valider les données dans un gestionnaire répondant à l’événement Click du bouton de validation. Le formulaire MailServerSettings contient le champ permettant de spécifier l’hôte du serveur mail qui ne peut pas être vide.
Ajoutez le code de validation de ce champ au gestionnaire de l’événement Click du bouton Valid créé précédemment :
void Valid_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(this.Host.Text))
MessageBox.Show("Le champ Hôte doit être complété.");
}
Ce code ne valide pas les champs un par un. Si le focus ne parvient...
Les méthodes de retour à l’utilisateur
Lorsqu’une donnée est incorrecte, il faut informer l’utilisateur de son erreur afin qu’il puisse la corriger. Si l’erreur est assez explicite, attirer l’attention de l’utilisateur sur un contrôle du formulaire en changeant sa couleur en rouge peut suffire. Dans les exemples précédents, la méthode MessageBox.Show a été utilisée pour afficher un message à l’utilisateur. Cela permet de décrire l’erreur et d’être plus précis. Le composant ErrorProvider quant à lui permet de signaler les erreurs d’une manière plus élégante.
1. MessageBox
Le type MessageBox contenant la méthode statique Show est la manière la plus simple d’afficher un message à l’utilisateur. Cette méthode affiche une boîte modale, ce qui a pour effet de stopper l’exécution de l’application et l’utilisateur est contraint d’effectuer une action pour la fermer.
La manière la plus simple d’afficher un message est d’utiliser la méthode Show avec un paramètre unique de type string :
MessageBox.Show("Mon message.");
La boîte de dialogue affichée sera :
La méthode Show comporte vingt surcharges permettant de personnaliser le message affiché....