一个form是一个登录界面,为frm1,里面有一个登录button,我想在点击登录的时候,frm1关闭,另一个form 名为frm2打开,我写的代码 
frm1.close();
frm2 f2 = new frm2();
f2.show();
但是当我点击登录的时候,两个form都没有了,当我把frm1.close();注释掉的时候,可以,但两个form都存在,请为该怎么实现啊?第一次写winform程序,求指点

解决方案 »

  1.   

    登录成功后隐藏登录界面。this.Hide();
    frm2 f2 = new frm2();
    frm.Show();
      

  2.   

    1、frm1.close();====>frm1.Hide();
    2、把frm2作为主窗体,启动后隐藏,显示frm1,登陆成功关闭frm1显示frm2        static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());//这里
            }
      

  3.   

    不要在登陆form中打开Form2,登陆成功后给调用者返回一个登陆成功标志,让调用者打开Form2,
      

  4.   

    frm1.close(); 这句执行后,后面的语句就走不到了
      

  5.   

    new System.Threading.Thread((System.Threading.ThreadStart)delegate  
    {  
        Application.Run(new Form2());  
    }).Start();  
    this.Close();  
      

  6.   

    Application.Run(new Form1()); 程序就会以为Form1为主窗体,主窗体关闭时.net会结束整个程序。
    实现方法
    form1.Hide();
    form2.Show();
      

  7.   

    LZ应该这样写
    this.hide();//关闭当前窗体
    from2 frm2=new from2();
    frm.show()//打开窗体
      

  8.   

    我上传过一个登陆模块,很适合初学者,你可以下来看看
    http://download.csdn.net/detail/mapleadr/1447946
      

  9.   

      要把frm2设为子窗体,把frm1设为主窗体才可以。否则,frm1关闭,frm2一样也会关闭。
      

  10.   

    close是把程序关闭了。后面不能再执行了。用hide程序还在内存执行下一句代码