{
  Form2 f2=new Form2();
  fw.Show();
  fw.Refresh();
  Application.Run(new FormMain());
}
private void FormMain_Load(object sender, System.EventArgs e)
{
   //主窗体的准备工作
   fw.Close();//fw为fw.Show()同一Form2实例
}
个人认为启动画面是为程序加载必要的东西赢得时间,设置定时器没必要.

解决方案 »

  1.   

    我觉得最好在FormMain_Load里面做开始画面的显示,也就是做show Form2的动作,对form2操作时用时间控制程序流程。如:
    bool done = true;
    formMain_Load(...){
     Form2 f2=new Form2();
      fw.Show();
      fw.Refresh();
     while(done)
     {
     }
    }再设置一个Timer,时间为你需要停留的时间,到时间就将done设置为false
    这是一个勉强的做法,还有更好的
      

  2.   

    [STAThread]
    static void Main() 
    {
      Form2 f2=new Form2();
      f2.Show();
      FormMain fmain==new FormMain();
      f2.close();
      Application.Run(Fmain);
    }
      

  3.   

    把Form2可以作为MainForm 的变量,程序开始show出来,再在MainForm Load完成后Close调,这样就刚好了
      

  4.   

    {
      Form2 f2=new Form2();
      fw.Show();
      fw.Refresh();
      Application.Run(new FormMain());
    }
    private void FormMain_Load(object sender, System.EventArgs e)
    {
       //主窗体的准备工作
       fw.Close();//fw为fw.Show()同一Form2实例
    }
      

  5.   

    把你的fw.show改为fw.ShowDialog就行了
      

  6.   

    我觉得这样就可以了:
    Public frm1 As Form
        Public frm2 As Form    Public Sub main()
            sbpShowSplash()
            sbpShowMain()
        End Sub
        Private Sub sbpShowSplash()
            frm1 = New Form1()
            frm1.Show()
            Application.DoEvents()
            Threading.Thread.Sleep(1000)
        End Sub
        Private Sub sbpShowMain()
            frm1.Close()
            frm1 = Nothing
            frm2 = New Form2()
            frm2.ShowDialog()
            
        End Sub