【发布时间】:2019-10-12 03:23:55
【问题描述】:
我想在 winform 中使用计时器每 1 秒更改一次背景色。例如红色 -> SystemColors.Control -> 红色 -> SystemColors.Control ->..
我在 mainUI 中有菜单项。所以当我点击这个控件时,我希望看到 mainUI 的背景颜色自动变化。
这是我写的代码。我应该在这段代码中更改什么?
private void RadMenuItem9_Click(object sender, EventArgs e)
{
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Enabled = true;
timer.Interval = 2000;
timer.Tick += new EventHandler(Timer1_Tick);
timer.Start();
}
private void Timer1_Tick(object sender, EventArgs e)
{
BackColor = Color.Red;
Thread.Sleep(1000);
BackColor = SystemColors.Control;
}
【问题讨论】:
-
移除休眠,因为它只是阻塞,实现一个逻辑,该逻辑有一个标志来说明颜色是否应该设置为红色,或者检查当前颜色并根据它进行切换
-
谢谢!我没有考虑过制作开关逻辑。我提出了逻辑,它有效!谢谢你的建议。
标签: c# multithreading winforms timer