2012-04-15 16 views
12

En C#, tengo variable, a, del tipo string.¿Cómo puedo encontrar un artículo por valor en un cuadro combinado en C#?

¿Cómo puedo find item por valor de a en combobox (Quiero encontrar el elemento con el valor sin texto de la pantalla del cuadro combinado).

+3

Por favor, mostrar cómo se llena el cuadro combinado. –

+0

Agregue una etiqueta para indicar qué kit de herramientas de interfaz de usuario está utilizando. –

Respuesta

22

Puede encontrarlo utilizando el siguiente código.

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

para conseguir el artículo en sí, escribir:

comboBox1.Items[index]; 
0

Yo sé que mi solución es muy simple y divertido, pero antes de que entreno lo usé. Importante: ¡DropDownStyle of combobox debe ser "DropDownList"!

Primero en cuadro combinado y, a continuación:

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

a mí me funciona bien y resuelto mi problema ... Pero la forma (solución) de @ st-mnmn es mejor y fina.

5

Debería ver un método en el control de cuadro combinado para FindStringExact(), que buscará el elemento de visualización y devolverá el índice de ese elemento si lo encuentra. Si no se encuentra, devolverá -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 
} 
+0

Creo que FindExactString() funciona en la propiedad DisplayMember de ComboBox. Creo que la pregunta es preguntar cómo hacer coincidir en la propiedad ValueMember de un ComboBox. – andyabel

0

Hola chicos la mejor manera si la búsqueda de un texto o el valor es

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; 
Cuestiones relacionadas