如何关闭应用程序,当我在一个子窗体上点击X按钮

本文关键字:窗体 一个 按钮 应用程序 何关闭 | 更新日期: 2023-09-27 18:17:36

我有一个表单应用程序与两个表单。在第二种形式中,我在右上角有一个x按钮。当我点击这个按钮来关闭应用程序,而不仅仅是隐藏Form2窗口时,我该如何做?

如何关闭应用程序,当我在一个子窗体上点击X按钮

首先需要捕获事件。为此,在子窗体的FormClosing事件上设置一个事件处理程序。

然后有几个选项:

  1. 使用Process.Kill() "Brute force"终止。
    这将终止进程,而不让任何清理代码运行。它的作用类似于通过任务管理器结束一个进程。你可以用Process.GetCurrentProcess得到当前的过程。像这样使用:

    Process.GetCurrentProcess().Kill();
    
  2. 通过使用Application.Exit()关闭所有窗口来"温和"终止。
    这将关闭所有消息泵和窗口,但同时允许正常的清理代码运行。但是,它不能保证进程将被终止,例如,如果在消息循环完成后一个前馈线程仍然处于活动状态。像这样使用:

    Application.Exit();
    
  3. 向主线程传达意图。
    这是一个设计解决方案,而不是你放在某个地方的"一行代码"。这个想法是,这两个类(两个表单)有一些通信机制(通过消息,事件或任何你认为合适的,可能已经使用),子表单通知父表单用户想要退出应用程序。然后,由主表单来清理所有内容,关闭所有表单(自身和其他表单),并正常退出该进程。这是最干净和首选的方法,但需要适当的设计和更多的代码。

如果您使用表单,最简单的是使用

this.Close(); or  Application.Exit();