有一个mdi container窗体,我想关闭这个窗体后弹出另一个窗体,然后在这个窗体上能执行一些动作并把整个应用程序关掉。这个弹出窗体不要MessageBox的。多谢高手

解决方案 »

  1.   

    Form1 fr=new Form1();
    fr.ShowDialog();
    this.Visiable=False;
      

  2.   

    可以把主窗体dispose()
    然后showdialog新窗体。
      

  3.   

    from1的打开新窗体事件
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim frm As New Form2
            frm.Show()
            Me.Dispose(False)  '主代码
        End Sub想要那个窗体关闭主程序就在那个窗体写
    Private Sub Form2_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
            Application.Exit()
    End Sub
      

  4.   

    Form1 fr=new Form1();this.Visiable=False;
    form1(弹出)的close事件中
    Application.Exit();
      

  5.   

    回复人: fengliudai(大连理工) ( ) 信誉:89  2005-06-14 11:43:00  得分: 0  
    主窗体隐藏也没问题,可是在弹出窗体上如何关闭隐藏的主窗体和这个弹出窗体啊
    Dispose both?
      
     
      

  6.   

    关闭所有窗体用Application.Exit();
    主窗体出现---隐藏主窗体----弹出Form2窗体---调用Application.Exit();推出
      

  7.   

    我先用show()方法显示弹出窗体,主窗体再用dispose(),结果程序就全关闭了,看来只能把主窗体隐藏啊
      

  8.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) 是两个窗体都关闭,就是退出程序
      

  9.   

    yinshuhai(因数还)Application.Exit()并不能退出应用程序啊,郁闷呀
      

  10.   

    fengliudai(大连理工)还找到一个校友:)
      

  11.   

    三只熊说的也不行啊,这个问题我在csdn上搜索了半天都没有好用的方法我想实现的东西就是点关闭然后主窗体关闭,弹出一个小窗体,用户可以选择是否备份数据库
      

  12.   

    Form1 主窗体  Form2  子窗体   将main函数 放在form2中  先显示form2   然后可以执行一些操作比如说   验证身份。如果通过验证可以关闭Form2   可以用close,关闭之前可以兴建 Form1 的一个 对象,显示主窗体!最后关闭时使用applicatinon.exit()就可以了!  (form1  form2 在同一个命名空间中)
    class form2
    {
       public form2()
       {   }
       //
       private test()  
       {
        if(true)// 条件自己决定
        { 
          form1 newform1 = new form1();
          this.close();
         }
        else
        {
         //false
         }
       }
       main()
       {
         form2 newform2 = new form2();
       }
    }
      

  13.   

    在要关闭的窗体的Closing 事件中写
      

  14.   

    使用CancelEventHandler 委托,查MSDN
      

  15.   

    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    Application.Run(new Form2());
    }
      

  16.   

    static void Main() 
    {
    Application.Run(new Form1());   
    Application.Run(new Form2());  //关闭第一个窗口后自动显示第二个 窗口 
    }
      

  17.   

    //实例化窗体一,并隐藏。
    Form1 fr=new Form1();
    this.Visible=false;
    //实例化窗体二,并显示。
    Form2 frm2 = new Form2();
    frm2.Show();
    ........
    //关闭所有程序。
    Application.Exit();这样就可以了。呵呵。
      

  18.   

    Form2 form2=new Form2();
    this.Hide();
    form2.Show();private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    Application.Exit();
    }
      

  19.   

    写个字段 public bool closed 初始为假的;
    然后在Main方法里写个判断式是closed 为假的话就Application.Exit();
    在form1的构造函数里写
    Form2 fr=new Form2();
    fr.ShowDialog();//在构造form1时先把form2构造出来
    form2退出时 如果需要让form1显示出来 把closed弄为真
    就ok了
      

  20.   

    感谢各位回答,非常感谢不过试验到最后Application.Exit()也不能退出程序让我很郁闷多谢 Richardhu(学无止境) 和 sfengnet(我也不想)
    这方法很好用