2

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

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

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

3 回答 3

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;
}
于 2013-09-17T14:23:37.457 回答
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 的回答

于 2013-09-17T14:39:59.310 回答
0

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

编辑:
克里斯的解决方案比使用 dataGridView.Rows.Count - 1 好得多

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

于 2013-09-17T14:25:07.047 回答