首页 > 上网技巧 > 电脑小技巧 > C#仿酷狗7退出特效源码

C#仿酷狗7退出特效源码

时间:2014-09-20 16:27 作者:QQ地带 我要评论

//作者:xiaoC
 
  1. //特效分进入和退出效果,使用2个Timer和窗体的FormClosing事件来实现; 
  2. //定义变量; 
  3. double A1 = 0;//窗口初始宽度; 
  4. double A2 = 0;//窗口初始高度; 
  5. double FormWidth = 358;//窗口最终宽度; 
  6. double FormHight = 454;//窗口最终高度; 
  7. double ctTMD = 1;//退出时透明效果; 
  8. //进入特效代码,FormShow_Timer; 
  9. private void FormShow_Timer_Tick(object sender, EventArgs e) 
  10.         { 
  11.              
  12.             if (A1 < FormWidth)//如果当前窗口宽度小于最终宽度; 
  13.             { 
  14.                 A1 += FormWidth / 10;//自增最终宽度的十分之一; 
  15.             } 
  16.             else//否则 
  17.             { 
  18.                 if (A2 < FormHight)//如果当前窗口高度小于最终高度; 
  19.                 { 
  20.                     A2 += FormHight / 10;//自增最终高度的十分之一; 
  21.                 } 
  22.                 else 
  23.                 { 
  24.                     FormShow_Timer.Enabled = false;//停止Timer运行; 
  25.                     return;//结束函数; 
  26.                 } 
  27.             } 
  28.             this.Size = new Size(Convert.ToInt32(A1), Convert.ToInt32(A2));//设置当前窗口大小; 
  29.             Rectangle rect2 = new Rectangle();//获取当前系统分别率; 
  30.             rect2 = Screen.GetWorkingArea(this);//获取当前系统分辨率; 
  31.             this.Left = (rect2.Width - this.Size.Width) / 2;//设置程序相对于显示器水平居中; 
  32.             this.Top = (rect2.Height - this.Size.Height) / 2;//设置程序相对于显示器垂直居中; 
  33.         } 
  34. //退出特效代码,FormClose_Timer; 
  35.  private void FormClose_Timer_Tick(object sender, EventArgs e) 
  36.         { 
  37.             if (A2 > 0)//如果当前高度大于0; 
  38.             { 
  39.                 A2 -= FormHight /10;//自减程序原始高度的十分之一; 
  40.                 this.Size = new Size(Convert.ToInt32(A1), Convert.ToInt32(A2));//设置窗口大小; 
  41.                 this.Top += Convert.ToInt32(FormHight / 10 / 2);//设置窗口位置,相对于原始位置水平居中; 
  42. //代码片段来自www.oicqzone.com 
  43.             } 
  44.             else//否则 
  45.             { 
  46.                 ctTMD -= 0.15;//透明度减少15% 
  47.                 Opacity = ctTMD;//设置透明度 
  48.                 if (A1 > 0)//如果当前宽度大于0; 
  49.                 { 
  50.                     A1 -= FormWidth / 10;//自减程序原始宽度的十分之一; 
  51.                     this.Size = new Size(Convert.ToInt32(A1), Convert.ToInt32(A2));//设置窗口大小; 
  52.                     if (A1 > FormWidth / 10 * 2)//如果当前宽度大于总宽度的十分之二; 
  53.                     { 
  54.                         this.Left += Convert.ToInt32(FormWidth / 10 / 2);//设置窗口位置,相对于原始位置水平居中; 
  55.                     } 
  56.                 } 
  57.                 else//否则; 
  58.                 { 
  59.                     notifyIcon1.Visible = false;//因为使用的是强制结束,系统不会自动取消托盘图标; 
  60.                     Environment.Exit(99);//强制结束(如果程序存在多线程,使用Close可能会导致程序无法退出(窗口消失,但进程还在)); 
  61.                 } 
  62.             } 
  63. //窗体退出时代码,记得添加窗体退出事件FormClosing; 
  64.      private void Home_FormClosing(object sender, FormClosingEventArgs e) 
  65.         { 
  66.             e.Cancel = true;//取消窗体退出; 
  67.             FormClose_Timer.Enabled = true;启动退出特效; 
  68.             //PS:这句代码中的FormWidth和FormHight是固定的,如果你程序本身支持拖动变化大小,那请将下面2句被注释的代码取消注释; 
  69.             //FormWidth = this.Size.Width;//获取当前窗口的宽度; 
  70.             //FormHight = this.Size.Height;//获取当前窗口的高度; 
  71.         } 
  72. //代码结束,设置方案: 
  73. //1、窗体宽度和高度拖到最小; 
  74. //2、FormShow_Timer的时间间隔设置为10~30最佳,启用状态为True。 

标签: C#
顶一下
(2)
100%
踩一下
(0)
0%

Google提供的广告