A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海舟 中级黑马   /  2012-9-12 23:32  /  2268 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在winform中,输入this.close()和Application.Exit()都可以退出程序,那它们的区别是什么呢?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

6 个回复

倒序浏览
this.close()是Form的方法,并不是退出程序了,只是你当前只有一个窗体的话就像是关闭了程序一样,和Application.Exit()有本质的区别!

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
Application.Exit()应用程序退退出
this.Close()当前窗口退出
例如:QQ聊天,你和多个朋友聊天,有多个聊天窗口,
this.Close()相当于关闭当前QQ聊天窗口,可能还有一个或者多个QQ聊天窗口。
Application.Exit()相当于QQ程序退出。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
this.Close()是关闭当前form
Application.Exit()是退出整个应用

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
this.close()方法 关闭窗体。
如果该窗体是应用程序的主启动窗体,则調用窗体的Close()方法,跟調用Application.Exit的效果差不多。
如果该窗体非主启动窗体,则只是关闭该窗体而不关闭整个应用程序。
Application.Exit()就是退出程序。
回复 使用道具 举报
Application.Exit()应用程序退退出  
通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口
this.Close()当前窗口退出
如果该窗体是应用程序的主启动窗体,则調用窗体的Close()方法,跟調用Application.Exit的效果差不多。
如果该窗体非主启动窗体,则只是关闭该窗体而不关闭整个应用程序。

如果是多线程应用程序,要想关闭整个应用程序,除了調用Application.Exit()方法或者主启动窗体的Close()之外,还需要显示的調用终止线程的代码。否则窗体虽然关闭了,看似应用程序退出了,其实线程依然还驻留在内存中工作。打开任务管理器依然可以看到
回复 使用道具 举报
Application.Exit()的意思是退出全部的程序。this.close()关闭当前正在运行的窗口,主要在多窗体的程序中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马