WinForm让窗体背景呈现迷幻色彩

方法

可以使用Application.DoEvents();方法,做出具有渐变的动态效果的窗体颜色变化:

   private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 253; i++)
{
this.BackColor = Color.FromArgb(i,255-i,i);
Application.DoEvents();
}
}
Application.DoEvents();告诉程序暂时中止你的循环,去做它需要的其它事情,如刷新窗体,检查鼠标点击事件等等……

所以,这样可以确保处在循环中的窗体也能保持响应。

如果去掉,循环结束前窗体不会自行重绘,就不能有渐变的动态效果。

当然,你可能觉得颜色变换太快了,无妨,在Application.DoEvents();代码后加下面这一行代码试试:

System.Threading.Thread.Sleep(5);

如果,你想要让他持续运行,可以用

while (Visible)
{

}

接下来给出完整的程序代码:

ALL CODE
private void button2_Click(object sender, EventArgs e)
{
while (Visible)
{
for (int i = 0; i < 253 && Visible; i++)
{
this.BackColor = Color.FromArgb(i, 255 - i, i);
Application.DoEvents();
System.Threading.Thread.Sleep(
5);
}
for (int i = 254; i >= 0 && Visible; i--)
{
this.BackColor = Color.FromArgb(i, 255 - i, i);
Application.DoEvents();
System.Threading.Thread.Sleep(
5);
}
}
}

posted on 2011-04-15 23:06  蘇銀城  阅读(601)  评论(0)    收藏  举报

导航