0

我有一个带有两个表单的表单应用程序。在第二种形式中,我在右上角有x按钮。当我单击此按钮关闭应用程序时,我该怎么做,而不仅仅是隐藏 Form2 窗口?

4

2 回答 2

6

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

然后有几个选项:

  1. “蛮力”终止使用Process.Kill().
    这将终止进程而不让任何清理代码运行。它的效果类似于通过任务管理器结束进程。您可以使用 获取当前进程Process.GetCurrentProcess。像这样使用:

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

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

于 2015-10-13T06:50:04.673 回答
0

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

this.Close(); or  Application.Exit();
于 2015-10-13T06:52:20.660 回答