Validateurs winform comme les validateurs asp.net

Description

Ce code est une librairie de validateurs pour vos contrôles Winform comme le framework en fournit pour les contrôles ASP.Net...

Si vous avez essayé d'utiliser l'évènement Validating des contrôles, vous avez sans doute remarqué qu'il ne permet pas de faire une validation très pratique :
-> d'une part il faut coder à la logique de validation à chaque fois
-> d'autre part, la validation n'est pas très user-friendly dans la mesure où la validation empêche de sortir du contrôle et qu'elle n'est pas toujours effectuée à la fermeture de la fenêtre

A chaque validateur , on associe le contrôle à valider et éventuellement le nom de la propriété de ce contrôle à tester (par défaut, Nothing pour Text)

Cette librairie contient les validateurs suivants :
-> CompareValidator : permet de comparer la valeur du contrôle à tester avec une valeur fixe ou la valeur d'un autre contrôle ou encore de tester si le contrôle contient des données d'un certain type
-> CustomValidator : permet d'effectuer une vérification personnalisée en répondant à l'évènement CustomValidation et en définissant e.IsValid dans le handler de cet évènement
-> RangeValidator : permet de tester si un champs est dans la plage données (date, integer, double)
-> RegularExpressionValidator : permet de vérifier qu'un champs correspond à une expression régulière donnée
-> RequiredValidator : permet de vérifier qu'un champs n'est pas vide (ou n'est pas égal à sa valeur initiale (à définir manuellement))

Vous pouvez définir l'affichage d'un message d'erreur à la validation et/ou l'affichage de l'erreur dans un ErrorProvider

Il est nécessaire d'ajouter en plus des validateurs, UN ET UN SEUL ValidatorsManager pour assurer le bon fonctionnement des validateurs et obtenir éventuellement les fonctionnalités suivantes :
-> lancer la validation de tous les validateurs présents sur la form
-> validation du formulaire à la fermeture par OK de la boite de dialogue
-> résumé des erreurs de validations dans un éventuel ValidationSummary présent sur la form
-> fournir la liste éditables des validateurs pour chaque contrôle (dans la liste de leurs propriétés) au designe (Provider)

Pour associer un validateur à un controle, vous avez deux solutions :
-> dans tous les cas ajoute un et un seul ValidatorsManager
-> ajouter éventuellement un ValidationSummary
-> Manuellement
--> ajouter le validateur sur la form
--> associé votre contrôle en choisissant votre contrôle dans la liste fournie dans la propriété ControlToValidate du validateur
--> à partir de là, vous avez accès au validateur soit à partir de ses propriétés où à partir de la propriété "Validators on ..." du controle à valider dans l'éditeur de Validators
-> Automatique sur le controle
--> Dans les propriétés du contrôle à valider, cliquer sur "..." de la propriété "Validators on ..."
--> Vous pouvez ensuite ajouter une nouveau validateur ou un validateur existant et le paramétrer

Il existe d'autres librairies allant dans le même sens mais pas obligatoirement de la même manière :
-> http://www.codeproject.com/cs/miscctrl/validationprovider.asp
-> http://www.csharpfr.com/codes/WINDOWS-FORMS-VALIDATORS_43575.aspx

Conclusion :


Un exemple d'utilisation (bidon) est fournit vous permettant de tester les différents validateurs...

N'hésitez pas à tester, à commenter et à noter...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.