Combobox Problème TRES BIZARRE !!!!!!!!!!!!!

Vince62290 Messages postés 18 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 25 décembre 2010 - 22 déc. 2008 à 20:54
Vince62290 Messages postés 18 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 25 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.

Ce problème me laisse sans voix.

Je compte sur vous, merci.

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 déc. 2008 à 21:18
as-tu vérifié l'ordre des tabulations sur ton formulaire ?

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
Vince62290 Messages postés 18 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 25 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?
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 déc. 2008 à 15:53
l'ordre des tabulations ne change pas le code.

quant à savoir comment les ordonner, voici une piste :

Imagine ton formulaire comme un arbre :

Form
|-- GroupBox 1
|    |---- TextBox1
|    |---- TextBox2
|-- GroupBox 2
     |---- TextBox3
     |---- TextBox4

en gros tu auras :
GroupBox1.TabIndex = 0
TextBox1.TabIndex = 0
TextBox2.TabIndex = 1

GroupBox2.TabIndex = 1
TextBox3.TabIndex = 0
TextBox4.TabIndex = 1

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
Vince62290 Messages postés 18 Date d'inscription vendredi 19 décembre 2008 Statut Membre Dernière intervention 25 décembre 2010
26 déc. 2008 à 14:45
Merci Seb ça marche à merveille.

C'est mon premier combo qui devient grisé et plus de problèmes d'error provider qui apparaissent n'importe quand au chargement de la feuille.

Encore merci à toi.

et joyeuses fètes
0
Rejoignez-nous