如何关闭应用程序,当我在一个子窗体上点击X按钮
本文关键字:窗体 一个 按钮 应用程序 何关闭 | 更新日期: 2023-09-27 18:17:36
我有一个表单应用程序与两个表单。在第二种形式中,我在右上角有一个x
按钮。当我点击这个按钮来关闭应用程序,而不仅仅是隐藏Form2窗口时,我该如何做?
首先需要捕获事件。为此,在子窗体的FormClosing
事件上设置一个事件处理程序。
然后有几个选项:
-
使用
Process.Kill()
"Brute force"终止。
这将终止进程,而不让任何清理代码运行。它的作用类似于通过任务管理器结束一个进程。你可以用Process.GetCurrentProcess
得到当前的过程。像这样使用:Process.GetCurrentProcess().Kill();
-
通过使用
Application.Exit()
关闭所有窗口来"温和"终止。
这将关闭所有消息泵和窗口,但同时允许正常的清理代码运行。但是,它不能保证进程将被终止,例如,如果在消息循环完成后一个前馈线程仍然处于活动状态。像这样使用:Application.Exit();
-
向主线程传达意图。
这是一个设计解决方案,而不是你放在某个地方的"一行代码"。这个想法是,这两个类(两个表单)有一些通信机制(通过消息,事件或任何你认为合适的,可能已经使用),子表单通知父表单用户想要退出应用程序。然后,由主表单来清理所有内容,关闭所有表单(自身和其他表单),并正常退出该进程。这是最干净和首选的方法,但需要适当的设计和更多的代码。
如果您使用表单,最简单的是使用
this.Close(); or Application.Exit();