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 :

Rechercher un element dans un ComboBox


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut Rechercher un element dans un ComboBox
    Bonjour,

    Suite à une requete je récupère l'id d'un employe.
    J'ai également un ComboBox avec une liste d'objet employe, voici la classe employe :

    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
     
    public class employe
            {
     
                private string Nom;
                private string Id;
     
                public employe(string Nom, string Id)
                {
                    nom= Nom;
                    id= Id;
                }
     
                public string nom
                {
                    get { return Nom; }
                }
     
                public string id
                {
                    get { return Id; }
                }
     
            }
    Je voudrai donc a partir de l'id récupéré avec ma requete, afficher dans mon ComboBox l'employe qui correspond, j'ai donc testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes.FindString(monID);
    Seulement la fonction FindString va rechercher des valeur directement dans la proriete nom alors que j'ai besoin qu'elle recherche dans la propriete id de l'objet employe.

    Avez vous une idée de comment je dois m'y prendre ? Merci

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Simplement
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes[monID];

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Il me met un message d'erreur comme quoi c'est impossible.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes[monID];
    Voici le message d'erreur :
    Error 4 Cannot apply indexing with [] to an expression of type 'System.Windows.Forms.ComboBox'

  4. #4
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 57
    Par défaut
    Salut,

    Et plutot que de travailler sur le SelectedIndex,
    tu n'essaierais pas un petit SelectedValue = id Employe

    A condition bien sur que les valeurs de tes comboItems soient bien les id d'employés

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    J'y est déjà pensé mais ça ne marche pas car car SelectedValue attend un objet et monId est un int.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    J'y est déjà pensé mais ça ne marche pas car car SelectedValue attend un objet et monId est un int.
    Un int c'est aussi un objet, je vois pas pourquoi ca ne passe pas!

    Mais sinon tu peux montrer la déclaration de ta combobox, et du remplissage?

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    J'y est déjà pensé mais ça ne marche pas car car SelectedValue attend un objet et monId est un int.
    Je rebondis sur ca, vu que dans ton employé le id est un string, peut etre que ca marche mieux en faisant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unCB_MesEmployes.SelectedValue = monId.toString();
    Bon tu peux toujours faire une boucle qui parcours tout les items
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(int i=0;i<unCB_MesEmployes.Items.Count;i++) 
    {
     if( ((employee)unCB_MesEmployes.Items[i]).id==monId)
      {
       unCB_MesEmployes.SelectedIndex=i;
       break;
     }
    }
    ou en link. M'enfin je suis surpris quand même!
    Petite remarque essaye de respecter un minimum les conventions c# ( Premiere lettre des classes en MAJ, ainsi que celle des propriétés)

  8. #8
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Citation Envoyé par Er3van Voir le message
    Simplement
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes[monID];
    Autant pour moi, j'ai oublié un mot !

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes.Items[monID];

    Ca marche mieux là ?

  9. #9
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Faudrait surement initialiser le ValueMember de ta combo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    unCB_MesEmployes.ValueMember="id"
    ...
    ...
    unCB_MesEmployes.SelectedValue = monId;

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Alors pour micka132, je le faisait déjà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    unCB_MesEmployes.ValueMember = "id";
    unCB_MesEmployes.DisplayMember = "nom";
    et la solution proposé par Er3van :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unCB_MesEmployes.SelectedIndex = unCB_MesEmployes.Items[monID];
    ne fonctionne pas non plus car Items[] attend le numéro d'un index et monID ne correspond pas à l'index où ce trouve mes valeurs, il peut avoir ce type de valeur : 145335224.

  11. #11
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    ne fonctionne pas non plus car Items[] attend le numéro d'un index et monID ne correspond pas à l'index où ce trouve mes valeurs, il peut avoir ce type de valeur : 145335224.
    Comment comptes-tu faire le lien entre ton ID et ta combo box dans ce cas ?

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

Discussions similaires

  1. Rechercher un objet dans une combobox
    Par shaun_the_sheep dans le forum C#
    Réponses: 8
    Dernier message: 21/11/2012, 12h14
  2. [XL-2007] recherche d'element dans excel, avec une macro
    Par astroflo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2012, 09h33
  3. [Débutant] ajout une element dans un combobox
    Par enacta dans le forum VB.NET
    Réponses: 13
    Dernier message: 14/10/2011, 13h05
  4. Recherche d'element dans un document XML
    Par FlyByck dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2010, 20h37
  5. Rechercher un element dans un msflexgrid et selection
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/11/2005, 08h09

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