我正在做一个原型c#程序来测试我的概念。原型是一个简单的for循环(10x),它将文本框背景颜色属性设置为随机生成的颜色,然后等待2秒再次执行。
for (int i = 0; i < 10; i++)
{
Color NewColor = GetRandomColor();
tbLight1.BackColor = NewColor;
Application.DoEvents();
WaitNSeconds(2);
}
使用调试功能我知道随机颜色生成器工作,代码循环执行10次。但是,我只在文本框中看到最终颜色。我尝试过Refresh(),Update(),Invalidate()和现在的Application.DoEvents。它们都是一样的。我只看到最终的颜色,而不是之前的9。我不知道还有什么可以尝试的。
这是WaitNSeconds()方法。这是我从stackoverflow得到的。我将使用Thread.Sleep(2000);代替。
private void WaitNSeconds(int segundos)
{
if (segundos < 1) return;
DateTime _desired = DateTime.Now.AddSeconds(segundos);
while (DateTime.Now < _desired)
{
System.Windows.Forms.Application.DoEvents();
}
}
注意:由于这已被标记为重复,我已转移到该问题继续。谢谢!