我有一个带有复选框列的DataGridView。我试图创建一个全选/取消全选的按钮。更改值的代码很容易,但性能非常糟糕。
for (int i = 0; i < dgv.RowCount; i++)
{
dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
_selectAll只是一个开关布尔变量。是否有更好的方法可以使其性能更快?我也尝试过在底层数据表中更改值。即便如此,在仅有数百行的情况下仍需数秒钟才能完成,但大部分工作将在数千行上完成。
编辑和解决方案(2011/10/4)
主要问题出在DGV属性上。一旦我设置了,
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
性能得到了显著改善(参见MSDN DataGridView Performance)。 截至目前,建议的解决方案也会略微提高性能。
dgv.Rows[i].Cells[1].Value = _selectAll;
- Igby Largeman