我正在使用Win Forms和DataGridView控件。我的数据网格视图未绑定到数据源,但添加了列和行。在某些情况下,我将网格视图设置为只读,并尝试将每个单元格的背景颜色更改为灰色。但是灰色出现,然后恢复为白色默认值。我不明白为什么会这样。
以下是数据网格视图上的事件
- 单元格结束编辑
- 编辑控件显示
使网格只读并设置背景色的代码
_dataGridView.ReadOnly=true;
foreach (DataGridViewRow row in _dataGridView.Rows)
{
row.DefaultCellStyle.BackColor = SystemColors.Control;
}
敬请建议
您可以捕获数据网格视图的 RowPostPaint 事件。
在 VB.NEt 中,它看起来像:
Public Sub repainWithGrayColor() Handles DataGridView1.RowPostPaint
If (condition) Then
DataGridView1.Rows(e.RowIndex).Cells("ColumnName").Style.BackColor = Color.Gray
DataGridView1.Rows(e.RowIndex).Cells("ColumnName").ReadOnly = True
End If
End Sub
希望它有帮助。