更改datagridview单元格背景颜色

时间:2013-09-17 14:20:42

标签: c# winforms datagridview

我尝试:dataGridView.Rows[0].Cells[4].Style.BackColor = Color.AliceBlue;并且它工作正常但是如果我将项目添加到我的datagridview我不知道我正在使用哪个行号。

这就是我向datagridview添加项目的方式:

    public void addToDataGridView()
    {
        dataGridView.Rows.Add( "test1", fileName, fileSize, DateTime.Now, "myStatus");
    }

3 个答案:

答案 0 :(得分:2)

dataGridView.Rows.Add方法为您提供添加的行的索引。

public void addToDataGridView()
{
    int index = dataGridView.Rows.Add("test1", fileName, fileSize, DateTime.Now, "myStatus");
    dataGridView.Rows(index).Cells(4).Style.BackColor = Color.AliceBlue;
}

答案 1 :(得分:1)

有多种方法可以做到这一点:

  1. 如果您需要更改整列的颜色:

    DGV.Columns[ColumnIndexToColor].DefaultCellStyle.ForeColor = Color.AliceBlue;
    
  2. 如果您需要根据某些条件更改颜色并且您的DGV已绑定,则可以使用DataBindingComplete事件

    private void DGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
      if(DGV.Rows.Count>0 && DGV.Columns.Count>0)
      {
        foreach (DataGridViewRow r in DGV.Rows)
        {
          if(condition)
          {
            DataGridViewCheckBoxCell cell = r.Cells[ColumnIndexToColor];
            cell.Style.BackColor = Color.AliceBlue;
          }
        }
      }
    }
    
  3. 如果您需要根据某些条件更改颜色并且您的DGV没有绑定:当您向DGV添加行时,如@Chris

  4. 一样

答案 2 :(得分:0)

如果您使用的是dataGridView.Rows.Add(),则要添加行到dgw =>的结尾;它的索引将是dataGridView.Rows.Count - 1

编辑:
Chris的解决方案比使用dataGridView.Rows.Count - 1

要好得多

您可以选择其他解决方案 - 您可以创建DataGridViewRow,您可以在其中设置样式等,然后只需将其添加到dgw。