Cách tạo điều khiển combobox với các mục không thể chọn? Ví dụ: các tên nhóm hoặc tên danh mục đó chia nhỏ các mục trong danh sách thả xuống thành một số nhóm hoặc danh mục.Tạo ComboBox WinForms với các mục không thể chọn
Trả lời
Thay vì thêm chuỗi vào combobox, bạn có thể thêm một lớp đặc biệt và sử dụng mục đã chọn để xác định xem mục đó có được chọn hay không.
public partial class Form1 : Form
{
private class ComboBoxItem
{
public int Value { get; set; }
public string Text { get; set; }
public bool Selectable { get; set; }
}
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
this.comboBox1.ValueMember = "Value";
this.comboBox1.DisplayMember = "Text";
this.comboBox1.Items.AddRange(new[] {
new ComboBoxItem() { Selectable = false, Text="Unselectable", Value=0},
new ComboBoxItem() { Selectable = true, Text="Selectable1", Value=1},
new ComboBoxItem() { Selectable = true, Text="Selectable2", Value=2},
new ComboBoxItem() { Selectable = false, Text="Unselectable", Value=3},
new ComboBoxItem() { Selectable = true, Text="Selectable3", Value=4},
new ComboBoxItem() { Selectable = true, Text="Selectable4", Value=5},
});
this.comboBox1.SelectedIndexChanged += (cbSender, cbe) => {
var cb = cbSender as ComboBox;
if (cb.SelectedItem != null && cb.SelectedItem is ComboBoxItem && ((ComboBoxItem) cb.SelectedItem).Selectable == false) {
// deselect item
cb.SelectedIndex = -1;
}
};
}
}
Đây cũng là suy nghĩ đầu tiên của tôi. Tuy nhiên bạn vẫn có thể nhập văn bản mục vào ComboBox và do đó chọn mục không thể chọn. –
Không. Trong trường hợp của tôi, tôi sử dụng kiểu DropDownList cho ComboBox tắt trình soạn thảo văn bản. – symantis
Mã của bạn rất tốt và nó giúp ích cho tôi. Nhưng một câu hỏi khác - làm thế nào để vô hiệu hóa không chỉ lựa chọn các mục trong danh sách nhưng vô hiệu hóa theo dõi các mục không thể chọn bằng chuột. – symantis
Có một cái nhìn ở đây trên CodeProject cho một Combo Box readonly, đây là một bài viết để làm cho readonly combo box 'đàng hoàng' tìm ... Đây là một cho thấy làm thế nào để ghi đè lên cơ bản hộp tiêu chuẩn kết hợp để làm cho nó readonly như Sani đã đề xuất.
- 1. Cách tạo Combobox trong winforms chỉ đọc
- 2. Combobox với hộp kiểm trong winforms
- 3. Tạo kiểu WPF Các mục ComboBox
- 4. .NET WinForms ComboBox, các mục giống nhau và sự kiện SelectedIndexChanged
- 5. ComboBox với mục trống?
- 6. WinForms ComboBox dữ liệu ràng buộc Gotcha
- 7. Làm thế nào để tạo ra một Combobox Winforms với Label và giá trị?
- 8. cách liên kết danh sách với combobox? (Winforms)
- 9. Vô hiệu hóa các mục cụ thể trong một Combobox
- 10. Điều khiển ComboBox nhiều cột cho Winforms
- 11. Đặt mục ComboBox mục được chọn làm nổi bật màu
- 12. Winforms - Cách ngăn lựa chọn mục Listbox
- 13. Nhiều lựa chọn trên WinForms
- 14. Combobox của AJAX ASP.NET - Không thể thay đổi một cách có lập trình mục đã chọn
- 15. Có thể thay đổi combobox Winforms để vô hiệu hóa việc gõ vào nó?
- 16. Cách hiển thị văn bản trong combobox khi không có mục nào được chọn?
- 17. mẫu khác nhau cho các mục trong danh sách thả xuống ComboBox và cho chọn mục
- 18. WinForms ComboBox SelectedIndexChanged không bắn khi gõ vài ký tự sau đó Alt + Down
- 19. Chọn giá trị trên combobox với jquery
- 20. Nhóm các mục trong một ComboBox
- 21. Tìm mục trong WPF ComboBox
- 22. Chọn một mục trong comboBox bằng cách nhập
- 23. Nhận thẻ của mục đã chọn trong WPF ComboBox
- 24. Cách lấy giá trị ValueMember từ ComboBox C# Winforms?
- 25. Thêm các mục vào comboBox trong WPF
- 26. Không thể đặt DropDownHeight của ComboBox
- 27. Hộp tổ hợp Winforms - không cho phép người dùng chỉnh sửa các mục
- 28. combobox jquery ui autocomplete với các loại
- 29. jQuery Combobox/chọn tự động hoàn tất?
- 30. Xóa văn bản đã chọn ComboBox
Biểu mẫu hoặc biểu mẫu web? –
Bạn có thể cung cấp thêm một chút chi tiết. Đây có phải là WPF, Windows Forms hoặc một số khung giao diện người dùng khác không? – mattythomas2000