Vince62290
Messages postés18Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention25 décembre 2010
-
22 déc. 2008 à 20:54
Vince62290
Messages postés18Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention25 décembre 2010
-
26 déc. 2008 à 14:45
Bonsoir à tous, j'offre toute ma gratitude (bah vui je n'ai que ça) à celui qui trouvera la solution à mon problème
Environnement : j'ai une feuille composé de 2 GroupBox, dans lesquels se trouvent plusieurs combobox.
Le but étant que l'utilisateur créé un objet en complétant chaque liste déroulante.
Je gère donc un contrôle de saisie avec un Errorprovider pour chaque combo, histoire que l'utilisateur ne laisse pas une liste déroulante vide.
Test : mon test consiste à tester dans l'évènement _Enter de chaque combo, si la propriété Text du combo précédent est vide ou non. Si elle est vide : ErrorProvider, si elle n'est pas vide, alors c'est cool et rien ne se passe.
Mon PROBLEME BIZARRE : au chargement de ma Form, le Combo3 de mon GroupBox 1 est grisé avec sa propriété Text à vide. J'ai donc quelque part l'évènement Enter de ce contrôle qui est sollicité, et donc dès le chargement j'ai un ErrorProvider sur le combox2 (logique puisque dans l'évènement _Enter du Combo3 qui pose problème on teste si le combo précédent est à vide) ; tout ça au chargement de ma feuille.
Mes explications précédentes se sont confirmées lorsque j'ai débuggé pas à pas : après avoir charger tous les composants de ma feuille (Designer.cs), l'application entre directement dans l'évènement _Enter du combo3 qui pose problème.
Solutions déjà tentées :
- effacement du combox et remplacement par un autre (aucun effet, le nouveau combo se met également en grisé)
- déplacement du combox hors du GroupBox (aucun effet)
- suppression du combox (c'est le combo suivant qui devient grisé)
- parcours de tout les lignes de codes de l'appli pour voir si à un moment donné je ne lui donnais pas le focus au chargement de la feuille (sans résultat)
- comparaison de la valeur de toutes les propriétés du combo avec un autre combo (valeurs équivalentes)
Solution changeant le problème mais restant le même :
- suppression de la ligne : "cbbajoutcylindree.DropDownStyle =
ComboBoxStyle.DropDownList;"
Cette ligne avait pour but d'empêcher l'utilisateur de modifier les valeurs de la liste déroulante.
Résultat : le combo n'est plus grisé au chargement de la feuille MAIS il reçoit le focus. Et l'error provider, forcèment, s'affiche toujours au chargement.
Vince62290
Messages postés18Date d'inscriptionvendredi 19 décembre 2008StatutMembreDernière intervention25 décembre 2010 23 déc. 2008 à 15:45
Salut Seb,
je viens de vérifier l'ordre des tabulations :
l'ordre commence bien avec le combo qui me pose problème (TabIndex : 10), puis les tabulations suivante sont complètement désordonnées dans le GrouBox 1.
Pour mes GroupBox : TabIndex 2,3 et 7(un Groupbox qui ne contient aucun combo donc sans importance).
Mes Combos du GroupBox1 : 10 (le combo à problème), 19,20,21,22.
Les combos de GroupBox2 : 9,27,30,31.
Changer les TabIndex n'affecterait en rien mon code ??
Car j'orai bien envie de les réorganiser en commençant par l'index 0 mais je ne sais pas si je dois prendre en compte ou non les GroupBox.
C'est à dire dois-je commencer avec un GroupBox TabIndex 0,ou alors je peux commencer par le premier Combo et lui affecter 0 en TabIndex?