为什么第一行不更新ForeColor属性?

时间:2013-05-06 17:25:09

标签: c# winforms

我尝试使用以下代码更改我的DataGridView的所有行的ForeColor:

private void dgv_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {
   if (e.RowIndex >= 0) {
      DataGridViewRow row = dgv.Rows[e.RowIndex];
      e.CellStyle.ForeColor = Color.Green;
   }
}

但是第一行没有收到更新。

还有其他人有这个问题吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

使用CellFormatting事件

试试这个:

private void dgv_CellFormatting(object sender, 
                            DataGridViewCellFormattingEventArgs e) 
{
      e.CellStyle.ForeColor = Color.Green;
}

看到这张照片。

enter image description here

答案 1 :(得分:0)

问题是:第一行是选择。 要更新ForeColor后,只需清除行的选择。

  private void dgv_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {
     if (e.RowIndex >= 0) {
        DataGridViewRow row = dgv.Rows[e.RowIndex];
        e.CellStyle.ForeColor = Color.Green;
     }
     dgv.ClearSelection();
  }