在MDI子窗口如何退出系统
有一个MDI子窗口要关闭整个程序的话,应该怎么做呢?
我想要通过子窗口上的一个按钮来关闭整个程序,
------解决方案--------------------有一个方法:
在父窗口上使用多线程,设置一个bool变量,让这个线程每隔一段时间读取这个变量,当在子窗口点击一个按钮时,这个变量发生改变,一旦发生改变,父窗口上的运行的线程就主动关闭父窗口。
------解决方案--------------------application.exit();
------解决方案--------------------Application.Exit();
------解决方案--------------------Application.Exit();
------解决方案--------------------Application.Exit();
------解决方案--------------------Application.Exit();
------解决方案--------------------application.exit();
------解决方案--------------------Application.Exit();整个都关了,但这样是不管父窗体的,注意数据丢失处理!
------解决方案--------------------1:通过MdiParent.Close()来关闭/
2:直接引用主窗体并调用Close()来关闭/
3:可以使用Application.Exit()来关闭程序。
------解决方案--------------------注意
Application.Exit()方法,在 .NET Framework 2.0 版以前不引发 Form 类的事件(Closed 和 Closing)。为了强制引发这些事件,必须在调用 Exit 方法之前为各个打开的窗体显式调用 Close 方法。
------解决方案--------------------Application.Exit()
------解决方案--------------------如果想保存父窗体中的数据的话,可以传递一个委托。将保存数据的代码放在父窗体的一个函数里,并将Application.Exit()放在这个函数的最后,然后通过子窗体的构造函数或其他途径将这个函数的地址(委托)传递给子窗体,在子窗体的FormClosed或FormClosing事件中使用这个委托的Invoke方法。
------解决方案--------------------
------解决方案--------------------Application.OpenForms[0].Close();
或者:
Application.OpenForms["frmMain"].Close();//frmMain 是主窗体类的名字...
------解决方案--------------------路过,学习一下。我只知道Application.exit(),但数据丢失的问题不知道如何搞。
------解决方案--------------------把MDI子窗口的关闭事件注册到Parent中也可以