如何在datagridview中设置特定行的背景颜色?

时间:2014-12-17 11:57:40

标签: c# datagridview

我想在datagridview中设置指定Row的背景颜色。 我需要的是我有一个for循环(i=0;i<10;i++)。在这个for循环中我写了逻辑 如

if(i=1)
{
//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[1].DefaultCellStyle.SelectionBackColor = Color.Yellow;
}

if(i=1)
{
//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[2].DefaultCellStyle.SelectionBackColor = Color.Blue;
}


if(i=1)
{
//Want to Set Color For This Specified Row..
dataGridView1.SelectedRows[3].DefaultCellStyle.SelectionBackColor = Color.Red;
}

但我没有得到预期的o / p。我希望你理解我的需要。请帮助我。

2 个答案:

答案 0 :(得分:2)

您可以使用以下

,而不是使用DataGridview的SelectedRows属性
dataGridView1.Rows[1].DefaultCellStyle.ForeColor = Color.Red;

因为SelectedRows属性仅在用户选择了行时返回行,如果没有选择行,则代码将抛出异常。

编辑:

如果您有疑问,请提供示例代码,希望它能为您提供帮助。

for (int i = 0; i < 10; i++)
 {
   if (dataGridView1.Rows.Count > i)
    {
      if (i == 1)
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
      else if (i == 2)
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Blue;
      else
         dataGridView1.Rows[i].DefaultCellStyle.ForeColor = Color.Green;
     }
 }

答案 1 :(得分:1)

您可以处理数据网格的不同事件并设置单元格样式

以下是related question

的示例
private void dgvStatus_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex != color.Index)
        return;

    e.CellStyle.BackColor = Color.Red;
}