2012-04-17 31 views
26

Tôi đã có một hộp chứa hàng trăm mục trong đó. Người dùng phải có khả năng nhập văn bản vào hộp tổ hợp. Trong khi người dùng nhập văn bản, mục bắt đầu bằng giá trị đã nhập phải được chọn hoặc được liệt kê. Người dùng phải có khả năng nhập liên tục. ComboBox của tôi DropDownStyle là DropDownListChọn một mục trong comboBox bằng cách nhập

Ví dụ: Trong khi chọn tên trong comboBox bằng cách nhập, nó chỉ cho phép một chữ cái. Vì vậy, nếu tôi gõ "A" nó sẽ nhảy đến chữ cái đầu tiên bắt đầu bằng "A". khi tôi gõ liên tục hộp kết hợp, mục đã chọn sẽ thay đổi theo phím bấm hiện tại. nếu tôi nhấn "As", combobox xem các mục bắt đầu bằng "s".

Tôi đang sử dụng Biểu mẫu thắng.

cảm ơn trước ..

+1

WPF? WinForms? ASP.NET? –

+0

loại tương tự của câu hỏi được đăng [ở đây] [1] [1]: http://stackoverflow.com/questions/2257899/how-to-filter-combobox-values-in-winforms – Adil

+0

Hãy DropDownStyle 'DropDown' – Dan

Trả lời

50
comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; 
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 
+3

Bạn cũng có thể làm điều này với một 'DropDownStyle' của' DropDownList' bằng cách sử dụng các tùy chọn AutoComplete này - nó sẽ không hiển thị rõ ràng cho người dùng các khóa mà họ đã gõ cho đến nay. Tuy nhiên, nó là tốt đẹp khi bạn muốn giữ cho 'ComboBox.Items' bất biến. –

+6

Trước tiên, bạn nên đặt Nguồn và sau đó đặt Chế độ, nếu không nó sẽ ném NotSupportedException. Sau đó, nó hoạt động hoàn hảo – Gaeburider

+0

giải pháp hoàn hảo –

-1

Bạn sẽ phải kết nối với sự kiện TextChanged. Khi văn bản thay đổi, lọc danh sách (bằng cách sử dụng một DataView) và lấy văn bản của kết quả đầu tiên, thiết lập văn bản của hộp kết hợp đó. Bạn sẽ phải có một kiểm tra trong trình xử lý của bạn tất nhiên, để xác định có hay không xử lý sự kiện (khi bạn thay đổi văn bản, một sự kiện TextChanged khác sẽ được kích hoạt). Tất nhiên, bạn cũng muốn đánh dấu văn bản mà họ đã nhập và đặt dấu nháy ở vị trí thích hợp.

+0

Cách tiếp cận của bạn là không cần thiết phức tạp. – reformed

Các vấn đề liên quan