C#制作窗体透明渐变的方法

*/ ————————————————————————————–
*/ 出自: 编程中国  http://www.bc-cn.net
*/ 作者: 牛腩     E-mail:niunan.snid@gmail.com     QQ:164423073
*/ 时间: 2007-11-12   编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ ————————————————————————————–

看来http://bbs.bc-cn.ne这个编程论坛不错哦,呵呵,我那个C#渐变窗体的问题,在好几个论坛里发贴问了,别人都回答得不太清楚的,呵呵,刚刚在这论坛有个shen521941的论坛网友帮我解决好了,嘿嘿,在此表示感谢。。。下面是C#渐变窗体的完美解决方案:

①     新建一窗体,拉一Timer控件,Interval值设置为20,双击Timer控件进入事件编写:
         private void timer1_Tick(object sender, EventArgs e)
         {
             // 计时器事件
             if (this.Opacity > 0)
             {
                 this.Opacity -= 0.02;
             }
             else {
                 this.timer1.Enabled = false;
                 Application.Exit();                
             }
         }

②     往窗体里加入一按钮,命名为btnExit,双击按钮进入事件编写:
         private void btnExit_Click(object sender, EventArgs e)
         {          
             timer1.Start();
         }

然后测试窗体,这样当点击btnExit按钮后窗体慢慢变透明并最终关闭,透明的速度由Interval值决定,可是当我们点击窗体右上角的关闭按 钮时,窗体是直接关闭的,并没有经过透明渐变,下面我们就来编写代码让我们点击窗体右上角的关闭按钮时,窗体也透明渐变关闭,在窗体的 FormClosing事件中编写代码:
         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
         {
             e.Cancel = true;
             if (this.Opacity > 0)
             {
                 timer1.Start();
             }
             else
             {
                 e.Cancel = false;
             }
         }
这样,整个渐变功能我们已经实现,至于启动时也想要窗体渐变出现,只需要再加个Timer控件编写相反的事件就行。

posted on 2009-08-31 22:59  9号  阅读(346)  评论(0编辑  收藏  举报

导航