2010-12-08 25 views
2

Quelle est la meilleure façon de faire une validation dans une application Windows Forms?Quelle est la meilleure façon de faire des validations dans les formulaires Windows

Quelle est la méthode la plus simple?

Quel est le moyen le plus attrayant (pour l'utilisateur final)?

Cordialement,

-Kushan-

+1

Vous pourriez essayer d'être un peu plus précis. Quel type de données, quelles exigences, etc. Ce n'est pas comme s'il y avait une liste avec des méthodes de validation bien définies. –

Répondre

5

En ce qui concerne la validation de l'interface utilisateur, j'ai un ensemble de validateurs de contrôle, et je les branche simplement là où j'en ai besoin en leur assignant le contrôle. Vous pouvez montrer des erreurs en utilisant ErrorProvider, tout ce dont vous avez besoin est un framework encapsulé pour automatiser les choses.

Il existe d'abord la classe ValidatorBase. Rendez-le abstrait et héritez de la classe Component afin de pouvoir prendre en charge le design. Stockez une instance privée de ErrorProvider ici, et utilisez quelque chose comme Template Method pattern (créez une méthode Validate, qui à son tour appelle la méthode DoValidation abstraite protégée). Dans les implémentations concrètes de la classe de base, remplacez simplement DoValidation et mettez votre logique ici. Vous pouvez avoir EmptyValidator (vérifier si la valeur du contrôle n'est pas vide), RegexValidator (vérifier la valeur des contrôles avec une expression reg), GroupValidator (faire Valider sur chaque instance de ValidatorBase dans une liste), ce que vous voulez.

Dans la classe de base, vous pouvez ajouter des choses comme support de conception pour les propriétés (le message d'erreur, l'icône, le contrôle pour valider etc ...)

EDIT1: Maintenant, en ce qui concerne la validation autre puis dans l'interface utilisateur , c'est le domaine de votre couche de gestion et vos règles. Il existe également des cadres/modèles pour ces choses, mais je pense que vous posez des questions sur la validation de l'interface utilisateur.

EDIT2: ASP.NET a un ensemble de validateurs similaires intégrés, bien qu'avec plus de fonctionnalités (validation côté client, etc ...), mais pour être honnête, je ne les aime pas beaucoup.

EDIT3: vérifier aussi: Is there any validation control available in .net win forms like asp.net web form?