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#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    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 actif Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Points : 293
    Points
    293
    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 régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    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 actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

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

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

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    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 actif Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Points : 293
    Points
    293
    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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Points : 291
    Points
    291
    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();
    }

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    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 régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    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;
                }
            }
        }

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

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Points : 293
    Points
    293
    Par défaut
    Le seul truc que je verrai, c'est qu'avant d'assigner le DataSource,
    Tu spécifies des valeurs à cette ComboBox (via Items ou DataSource)
    Ce qui provoquerai lors de l'assignation de DataSource dans ton Load,
    Une modification des éléments et donc de la valeur sélectionnée ...

    Regarde dans la partie Designer de ta classe et supprime la (les) ligne(s) qui assigne(nt) les valeurs initiales.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 460
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par brachior Voir le message
    Le seul truc que je verrai, c'est qu'avant d'assigner le DataSource,
    Tu spécifies des valeurs à cette ComboBox (via Items ou DataSource)
    Ce qui provoquerai lors de l'assignation de DataSource dans ton Load,
    Une modification des éléments et donc de la valeur sélectionnée ...

    Regarde dans la partie Designer de ta classe et supprime la (les) ligne(s) qui assigne(nt) les valeurs initiales.
    En fait, après pas mal de lecture sur Internet, il s'agirait d'un bug des combobox... J'ai mis simplement un boolean et tout est rentré dans l'ordre !


    Merci encore !

+ 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