Tôi có hiệu suất khá tốt là DataGridView
. Thêm hàng trăm hàng mất khoảng 200ms. Dưới đây là những gì tôi làm:
virtual = true
- sử dụng chế độ xem Lưới dữ liệu ảo hóa có vẻ làm cho toàn bộ quá trình nhanh hơn. Chỉ cần nhớ thực hiện đúng cách logViewGrid_CellValueNeeded
.
Một điều cần làm là tạm thời tắt các sự kiện bố cục khi thêm dữ liệu vào danh sách bị ràng buộc. Cố gắng làm:
logViewGrid.SuspendLayout();
// add data, perform some operations on grid view
logViewGrid.ResumeLayout(false);
Tôi cũng đã có một vấn đề với hàng chậm màu; phương pháp của tôi để làm điều đó là thiết lập phong cách từng tế bào riêng biệt, như thế này:
gridViewInstance.Rows[currentRow].Cells[cellIndex].Style.BackColor = val;
Thay vào đó, tôi đã đi cho:
gridViewInstance.Rows[currentRow].DefaultCellStyle.BackColor = val;
Trong đó, 30 cột, đã cho tôi tăng tốc độ đáng kể trong phần đó của mã.
Bạn có một ví dụ mã của định dạng. Bạn đang tải bao nhiêu dữ liệu vào lưới? bạn có sử dụng nguồn dữ liệu được phân trang hay bạn tải mọi thứ vào lưới? – Ivo
Bạn có thể đăng mã mà bạn sử dụng để điền DatagridView không? Bạn có binded các datagridView với datatable hoặc làm bạn iterate thông qua datatable và chèn các bản ghi trong DatagridView? – aleroot