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 :

Changer source ComboBox


Sujet :

VB.NET

  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut Changer source ComboBox
    Bonjour à tous,

    Un fois de plus, je me retournes vers vous pour un problème que je n'arrive pas résoudre.

    J'ai un ComboBox et 2 boutons radios.
    Lorsque je clique, sur un des boutons radio, je souhaites changer la source de mon ComboBox.
    Comme mes listes seront assez longues, je souhaites donc les initialiser à l'ouverture de ma Form afin qu'elles s'intègrent au plus vite lorsque je clique sur un bouton radio.

    J'ai donc essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private List_Monde As New ArrayList
    Private List_France As New ArrayList
    Sur Form_Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    With List_Monde
                .Add("Rome")
                .Add("Berlin")
                .Add("Londres")
    End With
     
    With List_France
                .Add("Paris")
                .Add("Strasbourg")
                .Add("Reims")
    End With
    Sur bouton radio 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.DataSource = List_Monde
    Sur bouton radio 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.DataSource = List_France
    Seulement voilà, rien ne s'affiche dans la ComboBox
    A priori, c'est un problème de DisplayMember et ValueMember mais je n'arrive pas à comprendre comment les définir.

    Merci de bien vouloir éclairer ma lanterne

    Cordialement

    Christophe

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Salut tu as oublié le databind

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.DataSource = List_Monde
    Me.Lst_Cities.DataBind()

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonjour Bizet,

    Merci pour ta réponse si rapide.
    Malheureusement, je n'ai pas cette fonction de "DataBind".
    Je suis en VB Express 2008.

    Aurais-tu une autre précision à me donner ?

    Merci beaucoup

    Cordialement

    Christophe

  4. #4
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Salut

    je viens de vérifier et effectivement, il n'y a pas de databind

    Je te conseille de poser un breakpoint pour voir si tu passes bien dans la fonction et si tes arraylist sont bien non vides.

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    salut mets ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Lst_Cities.refresh()
    Me.Lst_Cities.DataSource = List_Monde

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonjour,

    Merci à vous deux de bien vouloir m'aider.
    Malheureusement, cela ne marche toujours pas.

    Mes listes se chargent bien à l'ouverture du formulaire.
    Si je mets mes listes dans 2 combobox séparés, je n'ai aucuns problèmes.

    Sur mes boutons radio, j'ai donc essayé ceci :
    Bouton radio 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.Refresh()
    Me.Lst_Cities.DisplayMember = "Cities_Other"'Nom de ma table
    Me.Lst_Cities.ValueMember = "CITY_NAME"'Nom du champ
    Me.Lst_Cities.DataSource = List_France
    Bouton radio 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.Refresh()
    Me.Lst_Cities.DisplayMember = "Commune_France"'Nom de ma table
    Me.Lst_Cities.ValueMember = "Commune"'Nom du champ
    Me.Lst_Cities.DataSource = List_France
    Mais, rien à faire, çà plante en me fermant simplement le formulaire et ce, sans aucun message d'erreur.

    D'autres idées ?

    Merci beaucoup

    Cordialement

    Christophe

  7. #7
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Execute en pas et pas et indique nous à quelle ligne ça plante

  8. #8
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonjour Jerede,

    Merci aussi à toi de bien vouloir m'aider.

    Ca plante en 2 points : sur le Clear et sur ValueMember.
    Toutefois, comme je n'ai pas compris comment utiliser DisplayMember et ValueMember, il y a peut-être une erreur de code.

    Cela dit, je ne comprend pas pourquoi çà plante sur le Clear.

    Merci beaucoup

    Cordialement

    Christophe

  9. #9
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Je ne vois pas le problème, moi ça marche impec'
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Public Class Form1
     
        Private List_Monde As New ArrayList
        Private List_France As New ArrayList
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            With List_Monde
                .Add("Rome")
                .Add("Berlin")
                .Add("Londres")
            End With
            With List_France
                .Add("Paris")
                .Add("Strasbourg")
                .Add("Reims")
            End With
        End Sub
     
        Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
            ComboBox1.DataSource = List_Monde
        End Sub
     
        Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
            ComboBox1.DataSource = List_France
        End Sub
     
    End Class

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    dans le message originel, marsouin_89 parle d'arrayList et ensuite de table (dataTable?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Lst_Cities.DisplayMember = "Commune_France"'Nom de ma table
    Qu'en est il exactement?

  11. #11
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    DisplayMember c'est d'après MSDN pour afficher une propriété précise des objets provenant du DataSource. Dans son cas il travaille avec des ArrayList avec des strings donc aucune utilité.

  12. #12
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut combobox,radiobutton,clear items
    bonjour marsouin ,
    on ne peut faire items.clear si on a binde sur un datasource,il warn
    imposible de faire un clear sur la propriete datasource
    sur vs 2008.

    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.DataSource = List_Monde
    voila ce qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private Sub RadioButton1_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
            Me.Lst_Cities.DataSource = Nothing
            Me.Lst_Cities.DataSource = List_Monde
        End Sub
     
        Private Sub RadioButton2_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
            Me.Lst_Cities.DataSource = Nothing
            Me.Lst_Cities.DataSource = List_France
        End Sub
    bon code et bonne soiree...

  13. #13
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Au début tu parlais de remplissage d Combo à partir de ArrayList et après tu le rempli à partir d'une table !!!

    La bonne réponse pour ta première question est celle que je t'ai donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Lst_Cities.refresh()
    Me.Lst_Cities.DataSource = List_Monde
    tu es en train de mélanger les choses, je ne comprends pas pourquoi le displaymember et valuemember, sachant bien que la source est de type ArrayList !!!???

  14. #14
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Me.Lst_Cities.Items.Clear()
    Me.Lst_Cities.Refresh()
    Me.Lst_Cities.DisplayMember = "Cities_Other"'Nom de ma table
    Me.Lst_Cities.ValueMember = "CITY_NAME"'Nom du champ
    Me.Lst_Cities.DataSource = List_France
    le clear apres une affectation avec datasource n'est valide .
    le DisplayMember ( y'a compris ValueMember) doit être une propriété public de List_France

    alors ListFrance doit être avoir les deux propriétés Cities_Other et CITY_NAME

    et pour faire un clear il suffit de donnee une autre datasource ou faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Lst_Cities.DataSource=Nothing

  15. #15
    Membre émérite

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Par défaut
    Bonjour à tous,

    Vraiment un grand merci à vous tous pour m'avoir aidé dans cette démarche.

    Effectivement, un Nothing avant le changement de source, résoud mon problème.

    Encore un fois, merci les gars, vous êtes géniaux

    Cordialement

    Christophe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affecter une ligne pour source combobox
    Par keskidi62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/07/2008, 19h10
  2. Changer Source Objet d'un sous-formulaire
    Par vandrie dans le forum IHM
    Réponses: 6
    Dernier message: 28/11/2007, 14h48
  3. Changer source Flash dynamic en boucle
    Par Paniez dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/11/2007, 12h03
  4. changer source d'un etat
    Par mnssylvain dans le forum IHM
    Réponses: 2
    Dernier message: 30/09/2006, 15h03
  5. changer couleur combobox
    Par KOMODO dans le forum Flash
    Réponses: 3
    Dernier message: 06/08/2006, 13h33

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