C#实现窗体淡入淡出效果的几种方法

时间:2022-02-21 09:02:45

1.

  private   void   Form1_Load(object   sender,   System.EventArgs   e)  
  for(double   d=0.01;   d<   1;   d+=0.02)  
  {  
  System.Threading.Thread.Sleep(1);  
  Application.DoEvents();  
  this.Opacity=d;  
  this.Refresh();  
  }

 

2.

  private   void   timer1_Tick(object   sender,   System.EventArgs   e)  
  {  
  this.Opacity   =   WinShow   ;  
  WinShow   +=   0.1   ;  
  if(WinShow   >=1   )  
  {  
  timer1.Dispose   ();  
  }  
  }

 

3.

用循环或计时器,  
  frmForm   myForm=new   frmForm()  
  frmForm.Opacity=0;  
  frmForm.show();  
  for(int   i=0;i<100;i++)  
  {  
  Application.DoEvents()  
  frmForm.Opacity=i/100;  
  }

 

4.

  #region     ********   窗体淡入效果函数       ********  
  private   double   WinShow   =   0;//用于窗口淡入效果的变量  
   
  private   void   FormShow(System.Windows.Forms.Form   Curfrm)  
  {  
  Curfrm.Opacity   =   WinShow   ;  
  WinShow   +=   0.01;  
  if(WinShow   ==   1)  
  {  
  Curfrm.timerShow.Stop   ();  
  }  
  }  
   
  #endregion  
   
  #region     ********   窗体淡入效果函数调用示例       ********  
  //实现窗口的淡入效果  
  private   void   timerShow_Tick(object   sender,   System.EventArgs   e)  
  {  
  //timerShow,这是一个timer控件名称;把timerShow.interval=100就可以了。  
  FormShow(this);  
  }  
  #endregion

http://publishblog.blogchina.com/blog/tb.b?diaryID=5564742