hred1
Messages postés108Date d'inscriptionsamedi 9 avril 2005StatutMembreDernière intervention 6 décembre 2007
-
24 nov. 2006 à 12:03
cs_kurky
Messages postés111Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention27 avril 2010
-
24 nov. 2006 à 14:18
Bonjour,
Je développe une application qui contient un questionnaire, dés que
l'utilisateur valide les réponse je vérifie certains questions disant sensibles.
Et pour accomplir cela je ne voie pas une méthode sophistiquée hormis des « if »
enchevêtrés pour vérifier question après question afin d'afficher un rapport
sous forme de message Box indiquant les erreurs effectuées.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 24 nov. 2006 à 12:09
quel type de validation de réponses tu dois faire? au pire si cest de la validation syntaxique, tu as les maskedtextbox...a ce moment la lutilisateur ne pourra pas quitter le champ tant que celui ci n'est pas correct, ce qui tevite ce mecanisme de textbox....
sinon tu as lelement validating qui te permet de vérifier un champ des que lutilisateur veut lui faire perdre le focus (ca te permet la meme mecanique mais de faire des vérifications autres, genre présence du champ dans une BD ou autre, enfin un traitement de vérification quoi)
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 24 nov. 2006 à 12:39
alors pour chaque champ de saisie tu peux utiliser l'evenement validating.
imaginons que tu aies 2 champs numériques a vérifier :
void champ1_validating(object sender, canceleventarts e)
{
//admettons que cest ta vérification a faire
if (champ1.value > 2 && champ1.value < 5)
{
messagebox.show("la valeur doit etre comprise entre 2 et 5");
e.Cancel = true;
}
}
void champ2_validating(object sender, canceleventargs e)
{
//admettons que cest ta vérification a faire
if (champ1.value % 250 || et champ1.value ^ 10 < 5)
{
messagebox.show("la valeur est pas bonne");
e.Cancel = true;
}
}
ainsi tout se fait indépendemment. quand lutilisateur quitte le champ1 (click ailleurs ou appuie sur tab), levent se déclenche et la vérification ne se fait que sur le champ1. si la valeur saisie est correcte, il peut changer de champ, sinon la messagebox lui dis que cest pas bon et le focus reste sur le champ, lutilisateur doit alors rentrer une valeur valide. ca tevite une grosse vérification au moment du click sur un bouton valider par exemple, et tu as une validation a chaque fois que lutilisateur tente de quitter le champ spécifié
cs_kurky
Messages postés111Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention27 avril 2010 24 nov. 2006 à 13:37
Personnellement je n'aime pas le principe de se bloquer sur la saisie d'un textbox car dans ce cas tu ne peux pas le quitter pour en remplir d'autres et revenir ensuite dessus.
Moi la dernière fois que j'ai du faire ceci j'ai utilisé la même méthode validating mais au lieu de faire un 'e.cancel = true' (qui te bloque sur le champ), j'ai ajouter un ErrorProvider sur le textbox qui t'affiche un petit icone avec un text sur l'erreur. ce qui permet de remplir toute ta page et de corriger les erreurs après par rapport au message du provider.
J'avais créé une classe avec mes propres valideurs selon le type de données et où je gérais les erreurs de validation.
<hr />
C# quand tu nous tiens !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 24 nov. 2006 à 13:45
lavantage du validating est qu'il te permet de ne pas avoir a tout rechecker a la validation finale...et puis si tu ne veux pas bloquer l'utilisateur, tu fait e.cancel = true; ET tu vide le champ ou le replace sur la derniere valeur valide (en tous cas ca te permet de tout checker au fur et a mesure et davoir un code plus propre et une experience utilisateur plus agréable globalement)
cs_kurky
Messages postés111Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention27 avril 2010 24 nov. 2006 à 14:18
le validating est obligatoire pour ca de toute facon pour le faire à la volée.
Mais effacer le champ n,'est pas propre non plus. Le ErrorProvider est fait pour ca donc autant l'utiliser. Et ca t'évite une MessageBox inutile. Moins il y a de click mieux c'est...