CONTRÔLE TEXTBOX VALIDATEUR

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 27 oct. 2010 à 08:28
l0r3nz1 Messages postés 218 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

l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
16 nov. 2010 à 14:26
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
bitshifter Messages postés 61 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 28 mai 2012 1
1 nov. 2010 à 16:41
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!
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
27 oct. 2010 à 09:26
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.
D4rkTiger Messages postés 22 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 23 septembre 2014
27 oct. 2010 à 09:01
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 Membre Dernière intervention 14 février 2014 37
27 oct. 2010 à 08:29
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)
Rejoignez-nous