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

C# Discussion :

problème collection combobox


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Par défaut problème collection combobox
    Bonjour, j'ai un problème lorsque je récupère la collection de ma combobox.

    Je vous explique un peu plus en détails :

    J'ai une classe.
    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
    public class TypeA
        {
            private int IdType;
            private string LibelleType;
     
            public void init(int unIdType, string unLibelleType)
            {
                IdType = unIdType;
                LibelleType = unLibelleType;
            }
     
            public int GetIdType()
            {
                return IdType;
            }
     
            public string GetLibelleType()
            {
                return LibelleType;
            }
     
            public override string ToString()
            {
                return LibelleType;
            }
     
        }
    Je veux remplir ma combobox avec des objets de la classe que j'ai créé :
    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
    29
    private void MiseAJourCB()
            {
                cbTypeAppart.Items.Clear();
                string Connec;
                string CheminExe = Application.ExecutablePath;
     
                //récupération du chemin d'accès
                CheminExe = CheminExe.Substring(0, CheminExe.LastIndexOf("\\"));
                //chaîne de connexion
                Connec = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + CheminExe + "\\immo.mdb";
                //objet connection
                OleDbConnection Connection;
                Connection = new OleDbConnection(Connec);
     
                Connection.Open();
     
                //Remplir la combobox
                OleDbCommand Command = new OleDbCommand("SELECT * FROM Type", Connection);
                OleDbDataReader Curseur = Command.ExecuteReader();
                TypeA unType = new TypeA();
                while (Curseur.Read())
                {
                    unType.init((int)Curseur["IdType"], (string)Curseur["LibelleType"]);
                    cbTypeAppart.Items.Add(unType);
                }
                Curseur.Close();
     
                Connection.Close();
            }
    Ensuite j'aimerais lorsqu'un element de ma combobox est sélectionné, le récupérer et l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TypeA unType = (TypeA)cbTypeAppart.SelectedItem
    tbModSuppr.Text = unType.GetLibelleType()
    Mais lorsque je sélectionne dans ma combobox un élément, le programme m'affiche dans ma textbox le dernier élément et pas celui que je selectionne.
    Je n'arrive pas à trouver mon erreur pouvez vous m'aider ?

  2. #2
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Tu ne crées qu'une seule instance de TypeA. Déplace l'instanciation dans la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                while (Curseur.Read())
                {
                    TypeA unType = new TypeA();
                    unType.init((int)Curseur["IdType"], (string)Curseur["LibelleType"]);
                    cbTypeAppart.Items.Add(unType);
                }

  3. #3
    Membre confirmé
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Par défaut
    Merci ça fonctionne. Je ne pensai vraiment pas que cela venait de la. Comment cela ce fait il ?

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    C'est simple : tu n'as qu'une instance, que tu modifies à chaque fois. Tous les éléments de ta ComboBox pointent donc vers une unique instance de TypeA, d'où un résultat identique à chaque fois !
    Si c'est Résolu, clique sur le bouton idoine...

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

Discussions similaires

  1. [DEBUTANT - VBA] Problèmes de ComboBox
    Par _Maniak dans le forum Général VBA
    Réponses: 13
    Dernier message: 10/03/2006, 10h02
  2. Problème de ComboBox...
    Par lerouzes dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/01/2006, 18h14
  3. Problème affichage ComboBox et barre déroulante!
    Par ghan77 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/01/2006, 14h09
  4. Probléme collection d'objets
    Par Contrec dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 10h08
  5. problème collection TABLE
    Par venusiafalls dans le forum SQL
    Réponses: 6
    Dernier message: 28/04/2004, 16h48

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