我做了一个登录窗口login和一个显示数据窗口main
当登录验证成功后
    main newWindow=new main
    newWindow.show();
    this.close()
当我这操作后login窗口关闭后,main窗口也关闭了,我要怎么做才能实现成功登录后关闭login窗口而正常显示mian窗口呢?

解决方案 »

  1.   

    这种情况不能用CLOSE,要用this.Hide()
      

  2.   

    或者把启动界面和主程序界面分开两个exe中 启动界面验证完后关闭自己再调主程序的exe
      

  3.   

    带登录验证要做的好,过程应该是:S1: Application.Start(new MainForm);
    S2: public void MainForm(void){MainForm.Visible = false;if(frmLogin.Show() == DialogResult.OK)this.Visible = true;}
    还可以加上多线程处理主框架加载问题!
      

  4.   

    你可以在application.run之前把登录窗口显示出来或者运行主窗口和登录窗口都要在main中
    用Application.Run
      

  5.   

    这样做不好
    你可以换一种思路
    把登陆窗体login换成模式的
    在main窗体里面加:
    login mylogin=new login();
    if(login.ShowDialog()==DialogResult.Cancel)
      this.close();
      

  6.   

    将Main窗体设置为主窗体,在Main窗体的Form_Load()事件中加上
    Login a=new Login()j;
    if(a.ShowDialogResult!=DialogResult.Yes)
    {
       Application.exit;
    }
      

  7.   

    当登录验证成功后
        this.Hide();
        main newWindow=new main
        newWindow.ShowDialog();
        this.close()
      

  8.   

    main newWindow=new main
    newWindow.show()
    this.Hide()之后, 在main里面调用FormClosed事件, 写上以下代码:  login.Close();
      

  9.   

    static void Main(string[] args)
            {
                LoginForm login = new LoginForm();
                if (DialogResult.OK == login.ShowDialog())
                {
                    Application.Run(new MainForm());
                }
            }