关闭C#Forms Application

Vin*_*d K 8 .net c# forms winforms

我有2个表单......当我启动应用程序时...并使用标题栏中的关闭"X"整个应用程序关闭...现在当我从第一个表单中选择一个选项时,我的情况下它是一个按钮"添加"作为它的电话簿应用程序..它转到第二种形式,因为我使用了firstform.hide()和2ndform.show()...现在,当我从标题栏中执行"X"时,它并没有完全关闭,因为1stform没有关闭....如何在整个应用程序关闭的任何阶段以这种方式对其进行编程

Cod*_*ray 11

您的第一个表单被设置为启动表单.这意味着无论何时关闭,您的整个应用程序都将关闭.相反,您的应用程序在关闭之前不会关闭.因此,当您隐藏启动表单并显示第二个表单时,关闭第二个表单的用户不会触发您的应用程序关闭,因为他们只关闭了一个辅助的非模态对话框.

我建议更改您的设计,以便启动表单也是您的应用程序的主要形式.尝试解决实际上有用的内置功能是没有意义的.您希望应用程序在主窗体关闭时退出,无论打开其他子窗体.

但在你的情况下,快速和肮脏的解决方案是打电话给Application.Exit.这将关闭所有当前打开的表单并立即退出您的应用程序.正如我上面所说,我不太推荐这种方法,因为不得不Application.Exit从每个表单的FormClosed事件处理程序调用,这表明你的设计中出现了严重错误.

如果单个启动表单范例不适合您,您应该考虑自己动手并MainProgram.cs源文件中自定义方法.请参阅此相关问题的答案,以获取有关如何对您有用的一些想法.


Øyv*_*hen 5

你可以做的是使用Form的FormClosing事件,并添加以下代码:

Application.Exit();
Run Code Online (Sandbox Code Playgroud)

这将停止整个应用程序,并关闭所有窗口.但是,如果后台线程正在运行,则进程本身将继续存在.在这种情况下,您可以使用:

Environment.Exit();
Run Code Online (Sandbox Code Playgroud)