2012-04-15 32 views
12

Trong C#, tôi có biến, a, thuộc loại string.Làm cách nào để tìm một mục theo giá trị trong hộp tổ hợp trong C#?

Làm cách nào để tôi find item theo giá trị a trong combobox (Tôi muốn tìm mục có giá trị không có văn bản hiển thị của combobox).

+3

Hãy thể hiện như thế nào combobox được lấp đầy. –

+0

Vui lòng thêm thẻ để cho biết bạn đang sử dụng bộ công cụ giao diện người dùng nào. –

Trả lời

22

Bạn có thể tìm bằng cách sử dụng mã sau.

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

Để có được mục riêng của mình, viết:

comboBox1.Items[index]; 
0

tôi biết giải pháp của tôi rất đơn giản và hài hước, nhưng trước khi tôi luyện tôi đã sử dụng nó. Quan trọng: DropDownStyle của combobox phải là "DropDownList"!

đầu tiên trong combobox và sau đó:

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

Nó hoạt động cho tôi ngay và giải quyết vấn đề của tôi ... Nhưng cách (giải pháp) từ @ st-mnmn là tốt hơn và tốt.

5

Bạn sẽ thấy một phương thức trên điều khiển hộp tổ hợp cho FindStringExact(), sẽ tìm kiếm displaymember và trả về chỉ mục của mục đó nếu tìm thấy. Nếu không tìm thấy sẽ trả về -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

Tôi nghĩ FindExactString() hoạt động trên thuộc tính DisplayMember của ComboBox. Tôi nghĩ rằng câu hỏi đặt ra là làm thế nào để phù hợp với thuộc tính ValueMember của một ComboBox. – andyabel

0

Hi Guys cách tốt nhất nếu tìm kiếm một giá trị chữ hoặc là

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; 
Các vấn đề liên quan