226 votes

Comment faire correspondre l'élément sélectionné dans une comboBox à ma chaîne de caractères en utilisant C# ?

J'ai une chaîne "test1" et ma comboBox contient test1 , test2 et test3 . Comment puis-je définir l'élément sélectionné comme étant "test1" ? Autrement dit, comment faire correspondre ma chaîne à l'un des éléments de la liste déroulante ?

Je pensais à la ligne ci-dessous, mais cela ne fonctionne pas.

comboBox1.SelectedText = "test1";

9voto

Brian Rudolph Points 3403

SelectedText permet d'obtenir ou de définir le texte actuel dans l'éditeur de chaînes pour l'élément sélectionné dans la liste déroulante, comme indiqué dans la documentation. ici . Cela devient non modifiable si vous définissez :

comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;

Utilisez :

comboBox1.SelectedItem = "test1";

ou :

comboBox1.SelectedIndex = comboBox1.Items.IndexOf("test1");

9voto

dave Points 478

J'ai utilisé une méthode d'extension :

public static void SelectItemByValue(this ComboBox cbo, string value)
{
    for(int i=0; i < cbo.Items.Count; i++)
    {
        var prop = cbo.Items[i].GetType().GetProperty(cbo.ValueMember);
        if (prop!=null && prop.GetValue(cbo.Items[i], null).ToString() == value)
        {
             cbo.SelectedIndex = i;
             break;
        }
    } 
}

Ensuite, il suffit de consommer la méthode :

ddl.SelectItemByValue(value);

8voto

Sapanesh Points 111

Utilisez ça :

Combox1.SelectedIndex = Combox1.FindStringExact("mystring")

5voto

Ben Points 51
comboBox1.SelectedItem.Text = "test1";

4voto

ihcarp Points 67

Supposons que test1, test2, test3 appartiennent à la collection comboBox1 la déclaration suivante fonctionnera.

comboBox1.SelectedIndex = 0;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X