这程序摘自《Head First in C#》一书,由东南大学出版社影印。
此程序的关键点的很多
1.Application.DoEvents() //用于看到程序的渐变过程
2.while(Visible) //为了使程序在未关闭前,背景色一直渐变
3.System.Threading.Thread.Sleep(10) //程序在10秒后挂起
具体程序代码如下
此窗体只有一个Button控件,使用Button的Click()事件来触发函数的执行代码如下和解释都在下面的源代码中,只copy出Click()事件中的代码:
Button_Click()
1
private
void
button1_Click(
object
sender, EventArgs e)
2 {
3 while (Visible)
4 { /* while(Visible)为了使程序在在没有关闭前颜色一直渐变,当关闭的时候突出循环 */
5
6 /* for语句中的c<254&&Visible是为了判断当程序关闭的时候退出循环,不然会产生延时推出程序,因为当关闭的程序的时候,
7 while(Visible)还为检测到,for语句仍在执行,直到两个for循环结束才会返回edit界面 */
8 for ( int c = 0 ; c < 254 && Visible ; c ++ )
9 {
10 this .BackColor = Color.FromArgb(c, 255 - c, c);
11 Application.DoEvents(); // 如果没有此句,程序无法正常执行,点击(X)时没有反应
12 // 此线程在10s后挂起
13 System.Threading.Thread.Sleep( 10 ); // 使北背景颜色变得更慢些,便于观察,整个渐变过程次序10秒钟
14
15 }
16 for ( int c = 254 && Visible ; c >= 0 ; c -- ) // 返回初始的颜色
17 {
18 this .BackColor = Color.FromArgb(c, 255 - c, c);
19 Application.DoEvents();
20 System.Threading.Thread.Sleep( 10 );
21 }
22 }
23 }
2 {
3 while (Visible)
4 { /* while(Visible)为了使程序在在没有关闭前颜色一直渐变,当关闭的时候突出循环 */
5
6 /* for语句中的c<254&&Visible是为了判断当程序关闭的时候退出循环,不然会产生延时推出程序,因为当关闭的程序的时候,
7 while(Visible)还为检测到,for语句仍在执行,直到两个for循环结束才会返回edit界面 */
8 for ( int c = 0 ; c < 254 && Visible ; c ++ )
9 {
10 this .BackColor = Color.FromArgb(c, 255 - c, c);
11 Application.DoEvents(); // 如果没有此句,程序无法正常执行,点击(X)时没有反应
12 // 此线程在10s后挂起
13 System.Threading.Thread.Sleep( 10 ); // 使北背景颜色变得更慢些,便于观察,整个渐变过程次序10秒钟
14
15 }
16 for ( int c = 254 && Visible ; c >= 0 ; c -- ) // 返回初始的颜色
17 {
18 this .BackColor = Color.FromArgb(c, 255 - c, c);
19 Application.DoEvents();
20 System.Threading.Thread.Sleep( 10 );
21 }
22 }
23 }