更改datagridview中的背景颜色

时间:2012-01-15 08:00:38

标签: c# .net winforms datagridview

当单元格值更改时,我尝试更改特定列中的背景颜色。 我没有找到这样做的方法,我不知道该怎么做。

ok ---->绿色背光。
nok ---->红色背光。

非常感谢你的帮助。

private void timer2_Tick(object sender, EventArgs e)
{
    int count = 0;
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        String StartCourse = dr[0].ToString();
        string EndCourse = dr[1].ToString();
        DateTime SystemTime = Convert.ToDateTime(DateTime.Now);
        DateTime StartTime = Convert.ToDateTime(StartCourse);
        DateTime EndTime = Convert.ToDateTime(EndCourse);

        if (StartTime.TimeOfDay.Ticks <= SystemTime.TimeOfDay.Ticks && SystemTime.TimeOfDay.Ticks < EndTime.TimeOfDay.Ticks)
            {
                 ds.Tables[0].Rows[count][5] = "ok";      
            }

        else
            {
                ds.Tables[0].Rows[count][5] = "nok";
            }

        count++;
        dataGridView1.DataSource = ds.Tables[0];

    }
}

4 个答案:

答案 0 :(得分:1)

请参阅DataGridViewColumn.DefaultCellStyle属性。这允许您为列设置DataGridViewCellStyle。该类具有BackColor属性。

有关更多详细信息,请参阅以下MSDN文章:

Cell Styles in the Windows Forms DataGridView Control

答案 1 :(得分:1)

您可以调用此程序:

<强>已更新

void ColorGrid()
{
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     {
        if (row.Cells[5].Value.ToString() == "ok") 
        {
            row.DefaultCellStyle.BackColor = Color.Green; 
        }
        else
        {
            row.DefaultCellStyle.BackColor = Color.Red; 
        }
     }
}

答案 2 :(得分:0)

试试这个:

 foreach (DataGridViewRow row in this.DataGridView1.Rows)
        {
            if (row.Cells[5].Text == "ok")
            {
                row.DefaultCellStyle.BackColor = Color.Green;
            }
            else
            {
                row.DefaultCellStyle.BackColor = Color.Red;
            }
        }

此致

答案 3 :(得分:0)

我在自己的项目中这样做。

 foreach (DataGridViewRow row in this.dataGridView1.Rows)
 {

     row.DefaultCellStyle.BackColor = (row.Cells[5].Text == "ok")? Color.Green:Color.Red;
 }

如果仍然无效,请尝试删除该datagridview并重新添加。 请务必将其再次命名为dataGridView1并附加其相应的事件。