DataGridView复选框列"全选"性能

Han*_*int 7 c# datagridview winforms

我有一个带复选框列的DataGridView.我正在尝试创建一个选择/取消选择所有按钮.更改值的代码很容易,但性能很可怕.

for (int i = 0; i < dgv.RowCount; i++)
{
    dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
Run Code Online (Sandbox Code Playgroud)

_selectAll只是一个toggle bool变量.在性能快速的情况下,有更好的方法吗?我也试过更改底层DataTable中的值.几百行仍然需要几秒钟,但大多数工作将在数千行上完成.

编辑与解决方案(2011/10/4)

主要问题在于DGV属性.一旦我设定,

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
Run Code Online (Sandbox Code Playgroud)

性能得到显着提升(根据MSDN DataGridView性能).在此编辑中建议的解决方案也会略微提高性能.

小智 6

非常感谢,通过设置AutoSizeColumnsMode属性

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
Run Code Online (Sandbox Code Playgroud)

性能要好得多......