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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Timer Tick C#表单上更改DataGrid单元格的背景颜色相关的知识,希望对你有一定的参考价值。

我目前正在开发一个程序,它以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的同时实现计时器?

谢谢

答案

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

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;
        }
   }

以上是关于在Timer Tick C#表单上更改DataGrid单元格的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何测量函数运行的时间?

Javascript 不适用于 ASP.NET 上的 Timer Tick 方法

当Timer触发其tick时,如何使TextBox.TextChanged事件不触发?

winform如何用Timer实现将时间动态显示在窗体上?

如何在非托管类中将 Tick 事件添加到 System::windows::Forms::Timer

谁能用语音给我讲讲c# wpf 中timer类的使用。新手,看不太懂msdn上那些。