Tôi có một cột DataGridView với một cột hộp kiểm. Tôi đang cố gắng tạo một nút chọn/bỏ chọn tất cả. Mã để thay đổi các giá trị là dễ dàng, nhưng hiệu suất là khủng khiếp.Cột hộp kiểm DataGridView "chọn tất cả" hiệu suất
for (int i = 0; i < dgv.RowCount; i++)
{
dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
_selectTất cả chỉ đơn giản là biến bool chuyển đổi. Có cách nào tốt hơn để thực hiện điều này khi hiệu năng hoạt động nhanh không? Tôi đã thử thay đổi giá trị trong DataTable cơ bản là tốt. Nó vẫn mất vài giây chỉ với vài trăm hàng, nhưng hầu hết công việc sẽ được thực hiện trên hàng ngàn hàng.
EDIT & SOLUTION (2011/10/4)
Vấn đề chính là trong các thuộc tính DGV. Khi tôi đã đặt,
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
hiệu suất được cải thiện đáng kể (mỗi MSDN DataGridView Performance). Các giải pháp được đề xuất khi chỉnh sửa này cũng sẽ cải thiện hiệu suất một chút.
Thử truy cập cột theo chỉ mục thay vì theo tên. ví dụ. 'dgv.Rows [i] .Cells [1] .Value = _selectAll;' –
Bạn có lưới bao quanh bất kỳ thuộc tính nào hay chỉ đưa nó từ mã phía sau? –
Bạn có chắc chắn đó là nơi cổ chai? Tôi nghĩ nó ở nơi khác. –