最快的方式来改变DataGridView的行颜色

时间:2014-02-15 08:28:58

标签: c# winforms datagridview

我有一个DataGridView控件,有两个方法:Filter()和ResetFilter()

当我过滤网格时,我将DataGridView的行的BackColor更改为蓝色。
在ResetFilter上,我将每一行的BackColor重置为白色。

以下是我到目前为止的代码:


dgvMain.Rows.Cast<DataGridViewRow>().ToList
     .ForEach(f => f.DefaultCellStyle.BackColor = Color.White);

大约需要40到50毫秒,

foreach (DataGridViewRow row in dgvMain.Rows)
{ row.DefaultCellStyle.BackColor = Color.White; }

需要大约30到40毫秒,这要快25%。


是否有一个更快的解决方案来改变所有行&#39;背景色?类似于dgvMain.RowsDefaultCellStyle.BackColor = Color.White的东西,它不会迭代每一行?

1 个答案:

答案 0 :(得分:0)

显然,迭代所有行并设置BackColor是一个非常糟糕的主意。使用DataGridView DefaultCellStyle属性