C# 窗口和程序的退出

Posted 代码描绘人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 窗口和程序的退出相关的知识,希望对你有一定的参考价值。

 

Application.Exit();
// 通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。
//  由 .NET Compact Framework 支持。

Form.Close();     
 //关闭窗口(主程序还没有退去)

 

要点:

1.程序从Application.Run(new   Form1)开始,到Application.Exit()结束,销毁窗体,回收资源。 这之中,如果你打开了1个窗体,两个语句就是一样,如果打开多个,比如你Form1里又开了form2,form3等等,那么,你除了Application.Run()参数以外的实例,执行close就是关闭那个窗体,程序不退出,Application.Exit就是关闭包括窗口在内的整个程序。

 

2.要退出程序,并且不是在主窗口退出,用Application.Exit(); 
如果是主窗口,可以直接用this.Close();

 

3.Form.Close(); 是关闭当前窗口,如果只有一个窗口或者是MDI里面的主窗口则是退出程序,是一种安全式 ,而 Application.Exit();则是强制结束进程,有时必须要采用这个退出才有效,比如线程锁住的时候, 一般情况下我认为用form.close()是不错的方法。

 

4. 在显示为无模式窗口的 Form 上调用 Close 方法时,不能调用 Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用 Control.Hide 方法。

 

5.当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件。如果在必须执行的其中一个事件中有验证代码,则在调用 Exit 方法之前,应分别为每个打开的窗体调用 Form.Close 方法。

以上是关于C# 窗口和程序的退出的主要内容,如果未能解决你的问题,请参考以下文章

c#关闭窗口怎么强制退出所有运行的线程

c# 安全退出窗口

Sleep() 方法后的代码片段没有被执行

如何正确退出 C# 应用程序?

C# 退出程序方法

C#程序员经常用到的10个实用代码片段 - 操作系统