none
Comment selectionner un element automatique dans une liste déroulante ? RRS feed

  • Question

  • Salut a tous

    J'ai 2 listes deroulantes et j'aimerais que lorsque je selectionne un nom dans la 1ere liste déroulante alors un nom de la 2eme liste déroulante se selectionne automatiquement?

    Ex: Dans la 1ere liste si je selectionne Paul alors Jack se selectionne automatiquement dans la 2eme liste

    C'est faisable ?

    Merci
    mercredi 29 décembre 2021 16:36

Réponses

  • Bonjour sun2k,

    C'est possible d'avoir le code complet afin d'apprendre ? 
    Oui, voici le code complet. Il vous reste à vous abonner aux événements SelectedIndexChanged (de la liste déroulante comboBox1) et Load (du formulaire) dans le concepteur de Visual Studio (fenêtre Propriétés / Properties dans la version anglaise) :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ZonedeListederoulante_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string choix = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
                switch(choix)
                {
                    case "Paul":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Jack");
                        break;
                    case "Vincent":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Maximilien");
                        break;
                    case "Gilbert":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Georges");
                        break;
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                comboBox1.Items.AddRange(new string[] { "Paul", "Vincent", "Gilbert" });
                comboBox2.Items.AddRange(new string[] { "Georges", "Jack", "Maximilien" });
            }
        }
    }

    Cordialement,
    Dimitar

    mercredi 5 janvier 2022 10:02
    Modérateur

Toutes les réponses

  • Bonjour sun2kl,

    Pour sélectionner l’élément dans la deuxième zone de liste déroulante, il suffit d’écrire la valeur de 
    l’élément choisi dans une variable chaîne et de définir la propriété SelectedIndex de la deuxième zone de 
    liste déroulante (par exemple, dans l’instruction switch). J’espère que l’extrait de code suivant vous sera 
    utile (Windows Forms, Visual C#) :

            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                //dans comboBox1 : Paul, Vincent, Gilbert ; dans comboBox2 : Georges, Jack, Maximilien
                string choix = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
                switch(choix)
                {
                    case "Paul":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Jack");
                        break;
                    case "Vincent":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Maximilien");
                        break;
                    case "Gilbert":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Georges");
                        break;
                }
            }

    Voici deux captures d’écran, avant et après le clique sur l’élément Paul.
                               

    Cordialement,
    Dimitar

    jeudi 30 décembre 2021 07:00
    Modérateur
  • Merci énorment je vois beaucoup mieux..

    C'est possible d'avoir le code complet afin d'apprendre ? 

    jeudi 30 décembre 2021 12:48
  • Bonjour sun2k,

    C'est possible d'avoir le code complet afin d'apprendre ? 
    Oui, voici le code complet. Il vous reste à vous abonner aux événements SelectedIndexChanged (de la liste déroulante comboBox1) et Load (du formulaire) dans le concepteur de Visual Studio (fenêtre Propriétés / Properties dans la version anglaise) :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ZonedeListederoulante_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string choix = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
                switch(choix)
                {
                    case "Paul":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Jack");
                        break;
                    case "Vincent":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Maximilien");
                        break;
                    case "Gilbert":
                        comboBox2.SelectedIndex = comboBox2.Items.IndexOf("Georges");
                        break;
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                comboBox1.Items.AddRange(new string[] { "Paul", "Vincent", "Gilbert" });
                comboBox2.Items.AddRange(new string[] { "Georges", "Jack", "Maximilien" });
            }
        }
    }

    Cordialement,
    Dimitar

    mercredi 5 janvier 2022 10:02
    Modérateur