Récupérer la valeur sélectionnée d'une combobox [Résolu]

Signaler
Messages postés
13
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
19 septembre 2011
-
 ze -
Bonjour à tous

J'ai une combobox qui contient une liste de nom  d'entreprise et je voudrai récupérer la valeur sélectionnée afin de la traiter par la suite.
Il faut savoir que ma combobox récupère ses données d'un datasource et ne sont pas rentrées manuellement.

Voila merci de votre aide

7 réponses

Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
essaye

cmb.SelectedValue
ou
cmb.SelectedItem
Selon que tu veux traiter la valeur ou l'objet
Merci énormément Ca a marche
Messages postés
13
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
19 septembre 2011
3
j'ai essayé le selectedItem. Voici le test que je fais :

string nom_entreprise = cbListeEntreprise.SelectedItem.ToString();
MessageBox.Show(nom_entreprise);
Mais sa marche pas, il m'affiche Sys.Data.DataRowView dans ma messagebox

J'ai fait la meme chose avec selectedValue mais sa me donne la meme chose.
pas d'autres solutions ?
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
Et dans ton Combo lui meme ..

Que vois tu  ?
Quel datasource utilise tu ?
Messages postés
13
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
19 septembre 2011
3
Je veux récupérer la valeur sélectionnée dans une variable.
Je vois pas ce que tu veux dire quand tu dis "

Et dans ton Combo lui meme" ??
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
Tu veux une solution mais sans expliquer exactement ce que tu fais ni le resultat que tu obtiens

Ton combo :
Tu lui a donné une datasource ?
Donc a priori j'espère a l'ecran tu vois bien les valeurs que tu souhaite (Pomme, poire caramel etc )
Ou bien vois tu une liste Sys.Data.DataRowView ?

Peux tu montrer le code que tu a employé pour donner le datasource a ton combobox ou c'est TOP secret ?
Messages postés
13
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
19 septembre 2011
3
ah ok désolé !

J'utilise une base sql serveur compact. Je possède 4 tables dont l'une s'appelle Clients et elle conntient un champs nom_entreprise.
Ma combobox est binder avec cette table et ce champ nom_entreprise. Donc pour le moment, lorsque j'execute mon programme, j'ai dans ma combobox la liste des entreprises.
Pour le moment, ya pas de code. Ensuite, pour tester si je récupère la bonne valeur, j'ai mis un bouton et lorsque je clique dessus je voudrai que ma messagebox affiche lentreprise que j'ai sélectionné dans ma combobox. Donc j'ai testé sa mais la valeur retourné est System.Data.DataRowView

private void button2_Click(object sender, EventArgs e)
{
            string nom_entreprise = cbListeEntreprise.SelectedValue.ToString();
            MessageBox.Show(nom_entreprise);
}

private void button2_Click(object sender, EventArgs e)
{
            string nom_entreprise = cbListeEntreprise.SelectedItem.ToString();
            MessageBox.Show(nom_entreprise);
}

Voila j'espère avoir été plus précis.
En tout cas merci de ton aide olibara
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
3
Ne connaissant toujours pas le contenu exact de ta table ni comment tu as fais le bind, je ne peux toujous pas dire s'il te manque qq chose
Toutefois voici un exemple qui pourrait t'aider
Je fais un select qui me retourne une table contenant 3 elements
J'utilise cette table pour remplit 3 combobox (voir code dans setgeo)

Ensuite j'utilise le DatarowView doné par le selected Items pour recuperer la valeur de l'element qui m'intéresse

    // **************************************************************************************************
    private void SetGeo()
    {
      Query qr = new Query();
      string SelectCmd = "SELECT distinct PostCode,Plaats,Regio FROM address ORDER BY Regio,Plaats,PostCode";


      DataTable dt = qr.selectX(SelectCmd);


      if (dt.Rows.Count == 0)
      {
        return;
      }
      cmb_Plaats.DataSource = dt;
      cmb_Plaats.DisplayMember = dt.Columns["Plaats"].Caption;
      cmb_Regio.DataSource = dt;
      cmb_Regio.DisplayMember = dt.Columns["Regio"].Caption;
      cmb_PostCode.DataSource = dt;
      cmb_PostCode.DisplayMember = dt.Columns["PostCode"].Caption;
    }

          DataRowView cZone = (DataRowView) cmb_Regio.SelectedItem;
          zone = cZone["Regio"].ToString();