【发布时间】:2014-08-21 18:59:45
【问题描述】:
我的程序显示一个绑定的数据网格视图。如果用户更改任何单元格中的值,程序将更改该单元格的背景颜色。这是代码:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.PaleGoldenrod;
}
我的程序有一个“撤消”按钮,基本上执行dataTable.RejectChange();。当用户激活撤消按钮时,datagridview 中更改的所有内容都将恢复为其原始值。但是,单元格的背景颜色仍然就像用户更改了单元格中的值一样。
很简单,我想知道是否有一种方法可以恢复单元格样式(主要是背景颜色)回到它们的原始状态(灰色和白色交替) ?
我正在考虑使用以下语句捕获原始默认设置:
defaultCellStyle = this.dataGridView1.DefaultCellStyle;
并且,当执行撤消时,我可以执行以下操作:
this.dataGridView1.DefaultCellStyle = this.defaultCellStyle;
但是,这似乎不起作用,因为 gridview 仍然保留单元格中的颜色,就好像它们已被更改一样。
我不想跟踪每个更改的单元格,只是为了循环它们并将背景颜色更改为默认值。我希望有一种方法可以将整个 datagridview 恢复为默认设置。有谁知道我如何做到这一点?
【问题讨论】:
标签: c# winforms datagridview