有一个MDI子窗口要关闭整个程序的话,应该怎么做呢?
  我想要通过子窗口上的一个按钮来关闭整个程序,

解决方案 »

  1.   

    有一个方法:在父窗口上使用多线程,设置一个bool变量,让这个线程每隔一段时间读取这个变量,当在子窗口点击一个按钮时,这个变量发生改变,一旦发生改变,父窗口上的运行的线程就主动关闭父窗口。
      

  2.   

    Application.Exit();整个都关了,但这样是不管父窗体的,注意数据丢失处理!
      

  3.   

    1:通过MdiParent.Close()来关闭/
    2:直接引用主窗体并调用Close()来关闭/
    3:可以使用Application.Exit()来关闭程序。
      

  4.   

    注意  
    Application.Exit()方法,在 .NET Framework 2.0 版以前不引发 Form 类的事件(Closed 和 Closing)。为了强制引发这些事件,必须在调用 Exit 方法之前为各个打开的窗体显式调用 Close 方法。  
      

  5.   

    如果想保存父窗体中的数据的话,可以传递一个委托。将保存数据的代码放在父窗体的一个函数里,并将Application.Exit()放在这个函数的最后,然后通过子窗体的构造函数或其他途径将这个函数的地址(委托)传递给子窗体,在子窗体的FormClosed或FormClosing事件中使用这个委托的Invoke方法。
      

  6.   

    Application.OpenForms[0].Close();
    或者:
    Application.OpenForms["frmMain"].Close();//frmMain 是主窗体类的名字...
      

  7.   

    路过,学习一下。我只知道Application.exit(),但数据丢失的问题不知道如何搞。
      

  8.   

    把MDI子窗口的关闭事件注册到Parent中也可以