更改DataGridview单元格的背景颜色

时间:2016-02-16 07:00:40

标签: winforms datagridview styles cell

我正在使用Win Forms和DataGridView控件。我的数据gridview未绑定到数据源,但添加了列和行。在某些情况下,我将网格视图设置为只读并尝试将每个单元格的背景颜色更改为灰色。但灰色显示然后又回到白色默认值。我无法理解为什么会这样。

以下是数据网格视图上的事件

  
      
  1. Cell End Edit
  2.   
  3. EditingControlShowing
  4.   

使网格只读并设置背景颜色的代码

_dataGridView.ReadOnly=true;
foreach (DataGridViewRow row in _dataGridView.Rows)
        {
            row.DefaultCellStyle.BackColor = SystemColors.Control;

        }

请建议

1 个答案:

答案 0 :(得分:1)

您可以捕获数据网格视图的RowPostPaint事件。

在VB中。它看起来像:

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

希望它有所帮助。