falla.zhang

导航

C#Application.DoEvents()

/// <summary>
/// 颜色变化反差形成视觉闪烁效果
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
    //Visible控件属性
    while (Visible)
    {
        for (int rgb = 0; rgb < 254 && Visible; rgb++)
        {
            this.BackColor = Color.FromArgb(rgb, 255 - rgb, rgb);
            /*
             * 当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件。
             * 该窗体在每次处理事件时,均将处理与该事件关联的所有代码。
             * 所有其他事件在队列中等待。在代码处理事件时,应用程序并不响应。
             * 例如,当将另一窗口拖到该窗口前面时,该窗口不重新绘制。
             * 如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。         
             */
            Application.DoEvents();
            System.Threading.Thread.Sleep(5);
        }
        //第2次循环让色彩变换过度更平滑
        for (int rgb = 254; rgb >= 0 && Visible; rgb--)
        {
            this.BackColor = Color.FromArgb(rgb, 255 - rgb, rgb);
            Application.DoEvents();
            System.Threading.Thread.Sleep(5);
        }
    }
}

posted on 2010-02-03 11:42  falla.zhang  阅读(7846)  评论(0编辑  收藏  举报