web-dev-qa-db-fra.com

Comment trouver un élément par valeur dans une liste déroulante en C #?

En C #, j'ai une variable, a, de type string.

Comment puis-je find item par la valeur de a dans combobox (Je veux trouver un élément avec la valeur sans afficher le texte de la liste déroulante).

14
Duy Khanh

Vous pouvez le trouver en utilisant le code suivant.

int index = comboBox1.Items.IndexOf(a);

Pour obtenir l'article lui-même, écrivez:

comboBox1.Items[index];
25
st mnmn

Vous devriez voir une méthode sur le contrôle de zone de liste déroulante pour FindStringExact (), qui recherche le membre d'affichage et renvoie l'index de cet élément s'il est trouvé. Si non trouvé retournera -1. 

//to select the item if found: 
mycombobox.SelectedIndex = mycombobox.FindStringExact("Combo"); 

//to test if the item exists: 
int i = mycombobox.FindStringExact("Combo"); 
if(i >= 0)
{
  //exists
}
7
Andrew Mulvaine

Salut les gars, le meilleur moyen de rechercher un texte ou une valeur est

int Selected;    
int count = ComboBox1.Items.Count;
    for (int i = 0; (i<= (count - 1)); i++) 
     {        
         ComboBox1.SelectedIndex = i;
        if ((string)(ComboBox1.SelectedValue) == "SearchValue") 
        {
            Selected = i;
        }

    }

    ComboBox1.SelectedIndex = Selected;
0
Teezy7

Je sais que ma solution est très simple et amusante, mais avant de m'entraîner, je l'ai utilisée. Important: DropDownStyle de la liste déroulante doit être "DropDownList"!

D'abord dans la liste déroulante et ensuite:

bool foundit = false;
String mystr = "item_1";
mycombobox.Text = mystr;
if (mycombobox.SelectedText == mystr) // Or using mycombobox.Text
    foundit = true;
else foundit = false;

Cela fonctionne pour moi correctement et a résolu mon problème ... Mais la solution de @ st-mnmn est meilleure et correcte.

0
user3290286