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 :

Rapatrier du texte depuis une combobox [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut Rapatrier du texte depuis une combobox
    Salut !


    J'ai un petit souci pour rapatrier les données d'une combobox.

    Voici mes 2 classes :

    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
    public class ComboBoxItem
        {
            private int _mavalue = 0;
            public String _mondisplay = "";
     
            public int MaValue
            {
                get { return _mavalue; }
                set { _mavalue = value; }
            }
     
            public String MonDisplay
            {
                get { return _mondisplay; }
                set { _mondisplay = value; }
            }
     
            public ComboBoxItem(String mondisplay, int mavalue)
            {
                _mondisplay = mondisplay;
                _mavalue = mavalue;
            }
        }
    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
    private void Miseajour2_Load(object sender, EventArgs e)
            {
                List<ComboBoxItem> items = new List<ComboBoxItem>();
                items.Add(new ComboBoxItem("Anniversaire", 0));
                items.Add(new ComboBoxItem("Anniversaire de mariage", 1));
                items.Add(new ComboBoxItem("Anniversaire de décès", 2));
                comboBox1.DataSource = items;
                comboBox1.ValueMember = "MaValue";
                comboBox1.DisplayMember = "MonDisplay";            
                foreach (ComboBoxItem it in items)
                {
                    if (it.MonDisplay == objpersonne.LeType)
                    {
                        comboBox1.SelectedValue = it.MaValue;                          
                    }
                }
    ==== >     MessageBox.Show("ST : " + comboBox1.SelectedText + " - SV : " + comboBox1.SelectedValue);
                .....
            }

    En fait, il me renvoie correctement la SelectedValue mais le SelectedText reste déspérement vide...

    Et je ne saisis pas pourquoi !


    Merci de votre aide !

  2. #2
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    En effet, lorsqu'on donne un objet autre qu'une string à une ComboBox, le champs SelectedText n'est pas renseigné.
    Mais le champs Text lui correspond à l'affichage en cours (donc le ToString) ...
    Évidemment, si la valeur est modifiée par l'utilisateur, ce champs aussi.
    Mais en passant par une ComboBox en DropDownList il n'y a pas de soucis

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Citation Envoyé par brachior Voir le message
    En effet, lorsqu'on donne un objet autre qu'une string à une ComboBox, le champs SelectedText n'est pas renseigné.
    Mais le champs Text lui correspond à l'affichage en cours (donc le ToString) ...
    Évidemment, si la valeur est modifiée par l'utilisateur, ce champs aussi.
    Mais en passant par une ComboBox en DropDownList il n'y a pas de soucis
    Si je comprends bien, je dois changer DropDown en DropDownList dans les propriétés de la ComboBox ? C'est bien cela ?

    Eh bien, j'ai essayé, mais ça ne change rien !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    As-tu essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox1.SelectedItem.ToString()

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Citation Envoyé par playfone Voir le message
    As-tu essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox1.SelectedItem.ToString()
    Ca me renvoie :

    Prog_Anniversaire.ComboBoxItem


  6. #6
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    Et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void Miseajour2_Load(object sender, EventArgs e)
    {
         comboBoxItem cbi = ((sender as comboBox).SelectedItem as ComboBoxItem);
        tonString = cbi.Content.ToString();
    }

  7. #7
    Membre expérimenté Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Par défaut
    Citation Envoyé par Mike888 Voir le message
    Si je comprends bien, je dois changer DropDown en DropDownList dans les propriétés de la ComboBox ? C'est bien cela ?

    Eh bien, j'ai essayé, mais ça ne change rien !
    Non ^^
    Je te parle du champs Text de ta ComboBox ^^
    Et te précise que ça peut poser problème si l'utilisateur peut modifier à la main la valeur du texte et que pour palier ce problème, tu peux passer la ComboBox en DropDownList ^^

    Mais le point qui résout ton problème est d'utiliser le champs Text et non SelectedText

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Citation Envoyé par brachior Voir le message
    Non ^^
    Je te parle du champs Text de ta ComboBox ^^
    Et te précise que ça peut poser problème si l'utilisateur peut modifier à la main la valeur du texte et que pour palier ce problème, tu peux passer la ComboBox en DropDownList ^^

    Mais le point qui résout ton problème est d'utiliser le champs Text et non SelectedText
    Bon sang, c'était aussi simple que ça !!!


    Tout grand merci à vous 2 !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    J'ai un autre petit souci avec une combobox :

    Lors du chargement de celle-ci, il lance l'évènement "SelectedValueChanged" (je sais pas pourquoi) ...
    Comment faire pour qu'il ne lance pas l'évènement (car il génère une erreur : Le format de la chaîne d'entrée est incorrect) ?


    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
    30
    31
    public partial class Suppression : Form
        {
            List<PersonneBO> lstpersonne = null;
     
            public Suppression()
            {
                InitializeComponent();
            }
     
            private void Suppression_Load(object sender, EventArgs e)
            {
                List<BO.PersonneBO> obj;
                obj = BL.Class1.SelectAllList1();
                obj.Sort();
                lstpersonne = obj.ToList();            
                comboBox1.DataSource = obj;
                comboBox1.DisplayMember = "Intitulé";
                comboBox1.ValueMember = "Id";
            }
     
            .....
     
            private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
            {            
                if (comboBox1.SelectedIndex != -1)
                {
                    PersonneBO objpers = lstpersonne.Find(x => x.Id == Convert.ToInt32(comboBox1.SelectedValue.ToString()));
                    label3.Text = objpers.LeType;
                }
            }
        }

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

Discussions similaires

  1. Récupération texte d'une combobox
    Par diophantes dans le forum GTK+ avec C & C++
    Réponses: 34
    Dernier message: 20/04/2007, 20h45
  2. Ecrire du texte depuis une variable dans une vue
    Par Vlad_Oliv dans le forum MFC
    Réponses: 1
    Dernier message: 09/01/2007, 17h28
  3. Réponses: 2
    Dernier message: 20/11/2006, 21h42
  4. [C#] proprités text d'une Combobox
    Par kooljy dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/06/2006, 09h24
  5. [FLASH MX2004] Lancer un clip depuis une combobox
    Par Sorento dans le forum Flash
    Réponses: 5
    Dernier message: 18/06/2005, 23h52

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