不需要时间控件这样就可以了
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();
}

解决方案 »

  1.   

    定制一个timer控件,添加如下代码:private void timer1_Tick(object sender, System.EventArgs e)
    {
    this.Opacity = WinShow ;
    WinShow += 0.1 ;
    if(WinShow >=1 )
    {
    timer1.Dispose ();
    }
    }
      

  2.   

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

  3.   

    谢谢
    不过我原来用过sleep(),但sleep的特点是虽然它能阻塞线程,可sleep()后面的语句不管sleep()休眠多长时间,都会照样执行下去阿!
      

  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
      

  5.   

    To:sinitic() 
    System.Threading.Sleep(int)阻塞当前线程,也就起到了延时的作用