Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Các giải pháp lập trình CSharp- P22: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đề thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu. | 211 Chương 6 Windows Form Hinh 6.5 ComboBox có tính nang auto-complete 10. SQp X p ListView theo dbt 6at ky 1 Bạn cần sắp xếp một Listview nhưng phương thức nội tại Listview.Sort chỉ sắp xếp căn cứ trên cột đầu tiên. Tạo một hiện thực cho giao diện System.Collections.IComparer để có thể sắp xếp các đối tượng Listviewitem kiểu IComparer có thể sắp xếp dựa trên bất kỳ tiêu chuẩn nào bạn muốn . Thiết lập thuộc tính ListView.ListViewitemSorter với một đối tượng của kiểu IComparer trước khi gọi phương thức ListView.Sort. Listview cung cấp phương thức Sort để sắp các item theo thứ tự alphabet dựa trên phần text trong cột đầu tiên. Nếu muốn sắp xếp dựa trên các giá trị cột khác hoặc sắp thứ tự các item theo bất kỳ cách nào khác bạn cần tạo một hiện thực tùy biến của giao diện iComparer. Giao diện iComparer định nghĩa một phương thức có tên là Compare phương thức này nhận vào hai đối tượng và xác định đối tượng nào sẽ được sắp trước. Lớp tùy biến ListViewItemComparer dưới đây hiện thực giao diện IComparer và cấp thêm hai thuộc tính Column và Numeric. Trong đó Column cho biết cột nào sẽ được sử dụng để sắp xếp và Numeric là một cờ Boolean được thiết lập là true nếu muốn thực hiện việc so sánh theo thứ tự số thay vì so sánh theo thứ tự alphabet. using System using System.Collections using System.Windows.Forms public class ListViewItemComparer IComparer private int column private bool numeric false public int Column get return column set column value public bool Numeric get return numeric set numeric value 212 Chương 6 Windows Form public ListViewitemComparer int columnindex Column columnindex public int Compare object x object y Listviewitem listX ListViewitem x Listviewitem listY Listviewitem y if Numeric Chuyển text thành số trước khi so sánh. Nếu chuyển đổi thất bại sử dụng giá trị 0. decimal listXVal listYVal try listXVal Decimal.Parse listX.Subitems Column .Text catch listXVal 0 try listYVal Decimal.Parse listY.Subitems Column .Text catch listYVal 0 return .