none
Valeur numérique d'un enum RRS feed

  • Question

  • Bonjour à tous,
    je butte sur un problème idiot.
    J'ai une énumération 

    public enum Annees { Annee_1 = 1, Annee_2 = 2, Annee_3 = 3 };

    que j'affiche dans une ComboBox comme ceci. 

    CBNewEleveAnnee.DataSource = Enum.GetNames(typeof(Annees));

    A ce niveau là pas de souci, mais je souhaite en récupérer (lors de la sélection) la valeur numérique. Donc pour Annee_1 -> récupérer le 1, pour Annee_2 le 2...
    C'est à ce niveau que ça coince.
    J'ai trouvé sur le net qu'il fallait utiliser Parse mais cela ne fonctionne pas. 

    Si quelqu'un à une idée...

    Merci

    lundi 19 novembre 2012 13:03

Réponses

  • Bonjour,

    Une autre alternative est d'utiliser la méthode Enum.GetValues :

    CBNewEleveAnnee.DataSource = Enum.GetValues(typeof(Annees));

    Ensuite vous pouvez récupérer la valeur sélectionné de type Annees

    Annees slectedAnnee = (Annees)this.CBNewEleveAnnee.SelectedValue;

    Cordialement.

    lundi 19 novembre 2012 13:40
    Auteur de réponse
  • Bonjour,

    Il vous suffit de faire de la manière suivante :

    int val = (int)Enum.Parse(typeof(Annees), comboBox1.SelectedItem.ToString());

    Je l'ai testé dans l'Event SelectedIndexChanged du comboBox

     

    Cordialement


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !

    • Marqué comme réponse paintbox00 lundi 19 novembre 2012 14:09
    lundi 19 novembre 2012 13:45

Toutes les réponses

  • Bonjour,

    Une autre alternative est d'utiliser la méthode Enum.GetValues :

    CBNewEleveAnnee.DataSource = Enum.GetValues(typeof(Annees));

    Ensuite vous pouvez récupérer la valeur sélectionné de type Annees

    Annees slectedAnnee = (Annees)this.CBNewEleveAnnee.SelectedValue;

    Cordialement.

    lundi 19 novembre 2012 13:40
    Auteur de réponse
  • Bonjour,

    Il vous suffit de faire de la manière suivante :

    int val = (int)Enum.Parse(typeof(Annees), comboBox1.SelectedItem.ToString());

    Je l'ai testé dans l'Event SelectedIndexChanged du comboBox

     

    Cordialement


    Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !

    • Marqué comme réponse paintbox00 lundi 19 novembre 2012 14:09
    lundi 19 novembre 2012 13:45
  • Bonjour,

    merci à vous 2 pour votre aide.

    C'est parfaitement ce que j'ai besoin.

    J'avais déjà +/- essayé cela, mais sans mettre le 

    CBNewEleveAnnee.SelectedItem.ToString()

    Encore merci à vous 2.

    lundi 19 novembre 2012 14:11