原来的窗体form2是个登陆窗体,在登陆成功后跳转成form1,之后我想让form2自动关闭而不是隐藏Hide(),然后关闭form1即可关闭整个程序。我的form2是主窗体。在网上搜了一些资料都不能用,用 Application.Exit在form2中添加窗体运行后直接退出。希望高手指点,我是个菜鸟,希望解答的人能给出详细的答复或是代码。谢谢

解决方案 »

  1.   

    //frmLogin.csfrmMain fm = new frmMain();
    fm.Show();
    this.Close();
      

  2.   

     [STAThread]
    static void Main()
    {
       form2 frm=new form2();
       try{
       if(frm.ShowDialog()!=DialogResult.OK)
       {
         return;//登录不成功退出
        }
       }catch
      {
        return;出错退出
       }
       Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       Application.Run(new Form1());
    }
      

  3.   

    昏了,都不知道你要关哪个?
    如:
    form1 主窗体(登录)
    form2 子窗体form1启动,登录正确隐藏,出现form2;form2用完了,选择属性栏上面的黄色闪电图标,切换到“事件”找到“FormClosing”事件,双击,把Application.Exit()加到里面。PS:打字也要时间的喂,LS出点血,加个5、6分咧。
      

  4.   

    [STAThread]
    static void Main()
    {
      form1 frm=new form1();//登录
      try{
      if(frm.ShowDialog()!=DialogResult.OK)
      {
        return;//登录不成功退出
        }
      }catch
      {
        return;出错退出
      }
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form2());//主窗体
    }
      

  5.   

       楼主首先应该理解的是窗体的具体含义。按照习惯,软件运行时首先打开的第一个窗体是登陆窗体,登陆验证成功后,登陆窗体关闭,再打开第二个窗体。此时第二个窗体习惯上才能称为是主窗体,因为它包含我们软件的各个功能模块。登陆窗体只是一个登陆验证的功能。也有的软件习惯运行时,主窗体和登陆窗体同时打开,登陆窗体显示在前,主窗体显示在后,主窗体此时地不可用,只有登陆窗体验证通过关闭后,主窗体才变为可用状态。
        第一步:按照你的需求可以做如下编码:(form1.cs)
      在登陆窗体(form1)中你添加自己的验证代码,在验证通过的逻辑代码后面,加上如下代码:
      this.DialogResult = DialogResult.Yes;  //让当前登陆窗体关闭
        此时验证通过,那么登陆窗体就关闭了。
      第二步:添加打开form2的代码:(program.cs)
        在vs2005中你创建了一个windows应用程序后,默认会创建一个窗体如:form1。同时生成两个可编辑的cs文件,form1.cs,program.cs(注:在vs2003中这两个cs文件合并为一个cs文件)。在第一步中你的代码是写在form1.cs中,下面就要在program.cs中继续添加代码。
            [STAThread]
            static void Main()
            {
                form1 myForm1 = new form1();   //创建一个form1的实例,此时myForm1和form1实际上指向同一个实例            if (myForm1.ShowDialog() == DialogResult.Yes)   //判断如果form1关闭,则进行以下操作
                {
                    form2 myForm2=new form2();    //创建一个form2的实例               
                    Application.Run(myForm2);     //打开form2窗体
                }           
            }
        至于哪个是form1或者是form2都不重要,主要是你分清哪个是登陆窗体,哪个做主窗体就好了。如果还是不清楚可以加QQ452127970