我有一个带有两个表单的表单应用程序。在第二种形式中,我在右上角有x
按钮。当我单击此按钮关闭应用程序时,我该怎么做,而不仅仅是隐藏 Form2 窗口?
1167 次
2 回答
6
首先,您需要捕捉事件。为此,请在子窗体的FormClosing
事件上设置一个事件处理程序。
然后有几个选项:
“蛮力”终止使用
Process.Kill()
.
这将终止进程而不让任何清理代码运行。它的效果类似于通过任务管理器结束进程。您可以使用 获取当前进程Process.GetCurrentProcess
。像这样使用:Process.GetCurrentProcess().Kill();
通过关闭所有窗口使用“温和”终止
Application.Exit()
。
这将关闭所有消息泵和窗口,但会在允许正常清理代码运行的同时这样做。但是,它不保证进程会被终止,例如,如果在消息循环完成后一个 forgound 线程仍然处于活动状态。像这样使用:Application.Exit();
将意图传达给主线程。
这是一个设计解决方案,而不是你放在某个地方的“代码行”。这个想法是 2 个类(2 个表单)具有某种通信机制(通过消息、事件或您认为合适并且可能已经使用的任何内容),并且子表单通知父表单用户希望退出应用程序。然后由主窗体清理所有内容,关闭所有窗体(自身和其他窗体),并正常退出进程。这是最干净和首选的方法,但需要适当的设计和更多的代码。
于 2015-10-13T06:50:04.673 回答
0
如果您使用的是表单,最简单的方法是使用
this.Close(); or Application.Exit();
于 2015-10-13T06:52:20.660 回答