Controle d'un combobox

Signaler
-
 Utilisateur anonyme -
Ouf voilà, j’ai voulu donner du contenu à mon combobox2 à partir du choix d’élément du combobox1 et le résulat n’est pas appréciable !J’ai procédé comme suit :
Private Sub Combobox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combobox1.SelectedIndexChanged
        If Combobox1.SelectedItem.ToString() = "Primaire" Then
            ComboBox2.Enabled = True
            ComboBox2.Items.Add("1ère Année")
            ComboBox2.Items.Add("2ème Année")
            ComboBox2.Items.Add("3ème Année")
            ComboBox2.Items.Add("4ème Année")
            ComboBox2.Items.Add("5ème Année")
            ComboBox2.Items.Add("6ème Année")
        ElseIf Combobox1.SelectedItem.ToString() = "Collège" Then
            ComboBox2.Enabled = True
            ComboBox2.Items.Add("7ème Année")
            ComboBox2.Items.Add("8ème Année")
            ComboBox2.Items.Add("9ème Année")
            ComboBox2.Items.Add("10ème Année")
        ElseIf Combobox1.SelectedItem.ToString() = "Lycée" Then
            ComboBox2.Enabled = True
     ComboBox2.Items.Add("11ème Année")
            ComboBox2.Items.Add("12ème Année")
            ComboBox2.Items.Add("Terminale")
        Else
            ComboBox2.Enabled = False
        End If
    End Sub
End Class

Et le mauvais résultat est qu’il ajoute les éléments dans Combobox2 chaque fois qu’on choisi un élément dans Combobox1. Par exemple si l’utilisateur choisi Primaire dans Combobox1 on retrouve ces éléments dans le combobox2
1ère Année
2ème Année
3ème Année
4ème Année
5ème Année
6ème Année
Et s’il reprend le même choix pour une deuxième fois, on obtient ce résultat dans combobox2 :
1ère Année
2ème Année
3ème Année
4ème Année
5ème Année
6ème Année
1ère Année
2ème Année
3ème Année
4ème Année
5ème Année
6ème Année


Ce qui est mauvais !

12 réponses


Bonjour,

Combodox2.items.clear()


en VB 2012.

Si tu n'as pas VB 2012 regarde dans ton aide
, ou dans ton aide, ou dans ton aide, ou dans ton aide.

L'aide n'est pas là pour les infirmes

Combobox, Classe
Combobox.items
ComboBox.ObjectCollection

Si tu as peur d'attraper la peste en ouvrant ton aide, va fouiller par là
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Difficile de répondre valablement sans connaître parfaitement les aboutissants.
De quoi s'agit-il ?
-- si de constituer une espèce de "panier", par exemple, la solution la plus simple est de retirer de la combo1 ce que l'on ajoute à la combo2. Une fois le "panier" validé, on le traite puis on reconstitue la combo1 et on vide la combo2

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
La connaissance des aboutissants est vraiment importante.
Dans d'autres cas, par exemple, il suffirait d'inhiber la combo1 dès que l'on y a fait un choix, après avoir alimenté la combo2.
Une fois terminée l'exploitation de combo2, la vider et ré-autoriser la combo1


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Ok! Je suis d'accord avec ta proposition
il suffirait d'inhiber la combo1 dès que l'on y a fait un choix, après avoir alimenté la combo2
ucfoutu mais si tu pouvais m'aider avec les codes cela me servirait une grande aide!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
ucfoutu mais si tu pouvais m'aider avec les codes cela me servirait une grande aide!

C'est une plaisanterie ?
1) relis mes deux derniers messages : ils ne font appel qu'à des notions de base, extrêmement rudimentaires !
2) sans aucune précision (déjà dit) sur les tenants et aboutissants, la stratégie à adopter est à ce stade inconnue !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonsoir,

cmarcotte (que je salue) t'as donné la solution pourtant
Sa petite ligne à rajouter au début de ton code et voilà.
L'aide n'est pas là pour les infirmes
Ca reste à prouver
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour, banana32,
La chose n"est pas aussi claire que cela, en l'absence d'une parfaite connaissance des aboutissants.
Nous ne savons à ce stade pas :
- s'il s'agit de n'alimenter la combo2 que des articles correspondant à un seul choix dans combo1 (et la solution de cmarcotte est alors suffisante, entre autres)
ou :
- s'il s'agit d'alimenter la combo2 comme on alimente un "panier" (pour chaque choix dans combo1 : une série d'articles, mais sans permettre de répéter le même choix dans combo1). D'où mon message du 12 novembre 2012 à 08:02:49 et ma demande répétée d'éclaircissement à ce sujet .


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ce qui "me met la puce à l'oreille", me fait tout au moins douter :
S'il ne s'agissait de ne permettre qu'un seul chois dans combo1, il n'aurait même pas besoin de faire les frais d'une combo2 (il lui suffirait de 4 arrays de strings et de traiter sur la base de l'array correspondant au seul choix fait.
Il est simplement regrettable (une fois de plus) que nous ne connaissionjs pas avec certitude les aboutissant précis et que cela (une fois de plus également) conduise à des questions/réponses (non réponse, en l'occurrence !) qui allongent inutilement une discussion.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Et encore mieux :
(il lui suffirait de 4 arrays de strings et de traiter sur la base de l'array correspondant au seul choix fait.

Un seul array suffirait, en en traitant, selon le choix fait, les seuls index correspondant à ce choix unique (une boucle for i = n1 to n2 pour extraire mon_array(i)) !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Sur un sujet précédent, le demandeur travaille sur un simple formulaire de saisie.
J'en conclus que ce n'est pas un 'panier'.
Donc la solution de cmarcotte fonctionnera parfaitement.
Bonne soirée ucfoutu et à bientôt sur un autre fil.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Ah ! Tu bases ta supposition sur une discussion antérieure, dans laquelle tu es allé à la pêche, en partant du principe que les aboutissants sont les mêmes un formulaire)
Tu as peut-être raison, ma foi !
Je regrette d'avoir à utiliser ici "peut-être"

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Je me base juste sur le fait qu'il faut plus de deux jours pour développer un projet.