C#Windows窗体更新时间

时间:2017-09-19 16:13:59

标签: c#

我正在做一个原型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();
        }
    }

注意:由于这已被标记为重复,我已转移到该问题继续。谢谢!

0 个答案:

没有答案