IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

PB combobox 'liées'


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut PB combobox 'liées'
    Bonjour,

    J'ai un pb de combobox qui change en même temps

    Je présente mon pb de manière simple :

    Voici mon code de remplissage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Call chargerProfils()
            ComboBox1.DataSource = tableProfil
            ComboBox1.DisplayMember = "PFPR"
     
            ComboBox4.DataSource = tableProfil
            ComboBox4.DisplayMember = "PFPR"
     
            ComboBox5.DataSource = tableProfil
            ComboBox5.DisplayMember = "PFPR"
     
     
            profilAdmin = True
        End Sub
    Et voici la structure de mon prg :
    Nom : Sans titre.png
Affichages : 203
Taille : 32,1 Ko

    Le problème est que quand je sélectionne un élément dans la combobox1, les autres prennent automatiquement la même valeur.

    Après plusieurs recherches, je n'ai toujours pas trouvé la propriété qui permet de rendre les combos indépendantes (si c'est le bon terme).
    Avez vous une idée siouplait.

    Merci d'avance et bonne année à tous.

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Bonjour,

    - Soit c'est le datasource en commun... (j'ai jamais essayé), mais ça serait étonnant...
    Auquel cas, la solution ira de soit, si ce n'est pas la deuxième hypothèse)


    - Soit c'est à la création qu'il y a eu un problème... (copier coller ? des contrôles, ou des événements ?)

    Il faut que tu ailles voir l’événement de sélection de tes combobox, et au bout de la ligne de déclaration de ces évènements, tu devrais avoir un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Handles combobox1.SelectionChanged"
    il faut que pour l’événement du combobox 1, le Handles ne soit que pour le combobox1 etc...
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Merci Adrien!

    Effectivement j'ai fais un copier/coller!
    Merci de ta réponse je vérifierai plus tard!
    Bon week end

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    De retour de vac, j'up ce topic.

    J'ai toujours le même soucis, les combobox changent en même temps.
    J'ai vérifié le handles, il est bien différent pour chaque combobox.
    J'ai essayé avec trois datasource différents mais le pb persiste (les noms diffèrent 'vu que c'est trois bases différentes' mais ils changent en même temps comme ci elles se callaient sur le même indice).
    Pb de fou ça!!!!

    Merci de vos réponses.

  5. #5
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Salut,

    Fait voir le code d'un événement d'un de ces combobox (SelectIndexChanged j'imagine)
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
        End Sub
    En fait, j'ai mis le code que dans l'envenement load de mon form. Je charge mes combos au démarrage de mon prg.
    J'ai rien ds selectedIndexChanged. Erreur de débutant, je suppose.

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Hello,

    A priori, j'aurais tablé sur le fait que le problème vient du fait que la datasource des 3 combos est identique...

    Mais vu que tu dis avoir mis des datasources différentes... Reste à voir comment tu as fait. P-e que au final, c'est quand même toujours la même.
    Kropernic

  8. #8
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Archi89 Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
        End Sub
    En fait, j'ai mis le code que dans l'envenement load de mon form. Je charge mes combos au démarrage de mon prg.
    J'ai rien ds selectedIndexChanged. Erreur de débutant, je suppose.

    Non non, c'est bien de charger dans le Load...
    Je voulais savoir si tu faisais quelque chose dans le SelectIndexChanged, qui aurait pu faire sélectionné les autres en même temps.
    Mais ce n'est pas ça, puisque tu n'as rien.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Effectivement c'est un pb avec la datasource en commun:
    J'ai essayé avec ce code (par exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Call chargerProfils()
            ComboBox1.DataSource = tableProfil
            ComboBox1.DisplayMember = "PFPR"
     
            Dim daysOfWeek As String() = _
              New String() {"Monday", "Tuesday", "Wednesday", _
                            "Thursday", "Friday", "Saturday", _
                            "Sunday"}
            ComboBox7.DataSource = daysOfWeek
     ComboBox8.DataSource = tableProfil5
            ComboBox8.DisplayMember = "PFPR"
           End Sub
    Et la comme par magie, la combobox7 est devenue indépendante.

    Comment puis-je remédier à ce pb?

    Merci

  10. #10
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    En effet, tu ne peux pas partager les Datasources...

    Par contre, tu n'est pas obliger d'utiliser des datasources... D'ailleurs, en as tu l'intérêt ?
    Le datasource permet de lier automatiquement une source de données aux comboboxs, sans devoir recharger le combobox à chaque fois...
    Mais si ta liste est juste une liste de constantes....

    Tu peux faire une seule procédure (avec le combobox en paramètre?) qui va remplir les mêmes éléments un par un (Items.Add()).

    Pas de datasource, pas de problème.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  11. #11
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bin... tu l'as dit toi-même...

    Faut utiliser des datasources différentes.

    Mais attention, si tu as une classe A et que tu fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim a, b as A
    a = New A()
    b = a
    Si tu passes a en datasource d'un contrôle et b en datasource d'un autre, c'est en fait la même classe car b ne fait que pointer vers a...
    Kropernic

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Oui merci à vous!

    C'est effectivement ce que j'avais essayé de faire quand j'ai dis que j'avais utilisé plusieurs datasource (j'ai juste fais a=b en somme).
    Bon je vais faire à l'ancienne alors, une bonne proc de bourrin qui rempli avec item.add.
    C'estr qd même curieux qu'il n'y a pas plus simple (m'enfin l'informatique quoi...)!!!

  13. #13
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Oh il y a bien plus simple. Mais si on te donne toutes les solutions tout de suite, ce n'est plus drôle.

    Donc je te laisse chercher un peu ^^.
    Kropernic

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Bande de méchant

    Vous voulez dire qu'il y a un autre moyen sans passer par une boucle for et items.add?
    Je suis curieux...

  15. #15
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    AddRange ?

    (Moi je sais pas à quoi Kropernic pense)
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  16. #16
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bon alors pour résumé ma pensée.

    Plutôt que de faire un nouvel objet et de le remplir manuellement élément par élément, il doit bien y avoir moyen de créer un nouvel objet sur base de l'existant. En une seule opération.
    Bon derrière, il y a fort à parier que le compilateur fasse une boucle mais ce n'est pas notre problème.

    Ce qui nous intéresse nous, c'est d'écrire le moins de code possible. Car en général (dans 90% des cas), moins de code veut dire que c'est plus lisible, plus facilement maintenable et moins générateur de bugs.

    Après, faut trouver la méthode pour le faire. Et vu que je ne sais pas quels objets tu utilises comme datasource, je ne peux pas aller plus loin. Mais du coup, je pense que mactwist doit avoir compris où je voulais en venir.
    Kropernic

  17. #17
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    A StarWars 2, l'attaque des ...... ?
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  18. #18
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Y en a un qui suit, c'est bien
    Kropernic

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    C'est des fous

    C'est du datatable, mais je vais faire la méthode bourin. Au moins, je la comprends celle là
    Merci à vous. Le sujet est clos.


    EDIT: J'ai trouvé une petite astuce. Au moment de me connecté dans sql, je fais trois tables et le tour est joué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    table1.Fill(MonDataSet, "profilsPreparateur1")
                    table1.Fill(MonDataSet, "profilsPreparateur2")
                    table1.Fill(MonDataSet, "profilsPreparateur3")
     
                    tableProfil1 = MonDataSet.Tables("profilsPreparateur1")
                    tableProfil2 = MonDataSet.Tables("profilsPreparateur2")
                    tableProfil3 = MonDataSet.Tables("profilsPreparateur3")
    Mes combobox sont ensuite alimentées par tableProfil1, 2 et 3.

  20. #20
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Pas bête non plus...

    Ça doit pas prendre plus de temps que nécessaire.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. effacer contenu d'une combobox liée
    Par christi dans le forum Windows Forms
    Réponses: 13
    Dernier message: 04/02/2009, 17h25
  2. Combobox liées entre elles
    Par Psychoze dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/03/2008, 13h30
  3. Combobox liée a un ArrayList
    Par Yoshio dans le forum Windows Forms
    Réponses: 9
    Dernier message: 29/01/2008, 19h27
  4. Combobox liées aux precdentes
    Par titeZ dans le forum IHM
    Réponses: 1
    Dernier message: 01/10/2007, 19h07
  5. [c#][.NET 2.0] Datagrid avec 2 combobox liées entre elles
    Par axl63800 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/04/2007, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo