我想使用winform中的计时器每1秒更改一次背景色。例如红色-> SystemColors.Control->红色-> SystemColors.Control-> ..
我的mainUI中有menuitem。因此,当我单击此控件时,我想查看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;
}
答案 0 :(得分:1)
您需要为切换颜色制定逻辑。在这里,由于要在两种颜色之间切换,因此可以检查当前颜色并切换到另一种颜色。您不能使用Sleep
,因为那样会阻塞UI线程,并且在线程被阻塞时不会在屏幕上显示任何更改。