CONTRÔLE TEXTBOX VALIDATEUR

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
- - Dernière réponse : l0r3nz1
Messages postés
221
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
- 16 nov. 2010 à 14:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52420-controle-textbox-validateur

Afficher la suite 
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32 -
Oui... et non !

Oui, car l'idée de pouvoir valider automatiquement la saisie est intéressante...
Non, car c'est trop "figer" ! Comment, je fais demain si je veux pouvoir valider un numéro de téléphone français ? je modifie le contrôle ?
De plus, pour moi, ce n'est pas au contrôle lui-même de valider le contenu mais à un objet "spécialisé"... Microsoft utilise en ASP.net des contrôles Validator, il faut autant que faire se peut transposer l'idée en Windows Forms (http://www.csharpfr.com/codes/WINDOWS-FORMS-VALIDATORS_43575.aspx)
D4rkTiger
Messages postés
22
Date d'inscription
vendredi 11 novembre 2005
Statut
Membre
Dernière intervention
23 septembre 2014
-
Je suis d'accord dans le fait que c'est figé mais en même temps il s'agit d'un contrôle spécialisé donc on pourrait par exemple faire un contrôle spécialisé nombre qui fasse la validation des nombres (numérique, à virgule, ...), un contrôle qui valide des numéros de téléphones avec prise en charge native (=directement intégré) des numéros français, canadiens, et plus. Et ainsi de suite.

Rien n'empêche d'utiliser des Validators dans le contrôle spécialisé. Et il ne faut pas dire, le contrôle ne doit pas faire la validation. Il s'agit là purement d'un point de vue et non d'une règle de programmation en soit. Si le contrôle est destiné à un usage bien spécifique alors il peut embarquer sa propre validation afin de mieux cadrer son domaine d'utilisation. Si tu ne veux pas intégrer la validation, autant prendre le textbox simple et utiliser les validators mais le but de prendre ce genre de contrôle c'est justement de s'affranchir de ces développements répétitifs.

monsieurx12: l'idée est bonne comme je le disais mais la remarque de sebmafate sur le fait que ton contrôle est figé est exacte. Il faut que tu sépares les différents domaines d'applications et permettre également de pouvoir les étendre pour ceux qui en ont besoin notamment pour les numéros de téléphones. ;-)

Si tu as des questions sur ce point n'hésites pas à demander
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32 -
pour moi, le textbox est une zone de saisie. point.
si tu commences à mettre de la logique dans ton textbox tu vas au devant de problèmes d'évolutivités.

-> tu veux pouvoir saisir que des chiffres : tu crées un composant "IExtenderProvider"

l'idée est simple : il faut que ton application reste à la fois : simple et évolutive. tu serais surpris de voir tout ce qu'on peut faire avec les contrôles standards du framework.
bitshifter
Messages postés
85
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
28 mai 2012
-
Ce contrôle devrait peut-être présenter des options validation avec des valeurs par défaut.

txtValid.Validation = TRUE [sinon toute validation est ignorée]
txtValid.ValMax = 1700
txtValid.ValMin = 0

txtValid.TelephoneNoMask = [et ici mettre une liste "intellisense" avec possibilité de rajouter ce qui manque]

A l'extrème même valider des no de carte de crédit.

Bel effort!
l0r3nz1
Messages postés
221
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
bonjour,

pourquoi ne pas creer une classe textetbouton qui contient un textbox et eventuellement un bouton, on les abonne aux evenements.
dans ta classe:
this.toncontrole += new System.EventHandler(this.tafonction);

comme ca dans ton formulaire tu declare
textebouton moncontrol = new textebouton(textbox1,button1);

et tu a ton boutton et les evenements test valeurs par defaut et tout en une ligne, tu peux faire ca avec un seul control ou plusieur comme par exemple un scroll + tous les textbox d'un formulaire ou une case a cocher et un textbox... selon ta maniere de coder cela peut etre tres evolutif.

en plus c'est tres bien pour les feneants on place ses controles une fois et en une ligne on leur affecte des fonctions