在Timer Tick C#表单上更改DataGrid单元格的背景颜色

时间:2017-12-27 21:59:39

标签: c# forms datagridview

我目前正在开发一个程序,用C#表单显示和处理数据库中的数据。我有一个在程序加载时为空的DataGridView,当用户从ToolStripMenu中选择项目时,它会在数据库中填充数据。我需要能够每秒更改每行中单元格的背景颜色。我已经实例化了一个计时器,并将其设置为每秒都打勾。我设置了一个方法事件,每次计时器滴答时(每秒)执行一次,如下所示:

  void _timer_0_Tick(object sender, EventArgs e)
    {

    }

在这种方法中,我希望能够根据Status的好坏来将DataGrid中每行的“status”单元颜色设置为红色或绿色。

这个方法中的一些伪代码说明了我想做的事情:

  void _timer_0_Tick(object sender, EventArgs e)
   {
      bool isDataStable = //code to determine if stable on my end
      if(isDataStable == true)
        {
            DataGrid.Row[Index].Column["Status"].BackColor = Green;
        }
      else
        {
            DataGrid.Row[Index].Column["Status"].BackColor = Red;
        }
   }

我见过的每个DataGridView行/列编辑示例都必须使用基于DataGridView的事件处理程序,如何在实时编辑GridView的同时实现计时器?

由于

1 个答案:

答案 0 :(得分:1)

你的伪代码很接近 - 只需使用适当的属性:

void _timer_0_Tick(object sender, EventArgs e)
   {
      bool isDataStable = //code to determine if stable on my end
      if(isDataStable == true)
        {
            DataGrid.Rows[Index].Cells["Status"].Style.BackColor = Color.Green;
        }
      else
        {
            DataGrid.Rows[Index].Cells["Status"].Style.BackColor = Color.Red;
        }
   }