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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖云 中级黑马   /  2012-6-10 01:34  /  3931 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在winform中关闭窗口有如下两个方法:
            this.Close();
            Application.Exit();
但是这两个方法有什么区别,分别用在什么情况下?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

16 个回复

倒序浏览
第一个是正常关闭,第二个是异常关闭。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.Close();只是该应用程序中的一个winform关闭,此关闭还有后台代码运行,占CPU资源
Application.Exit(); 应用程序的退出 ,此退出后不会占占CPU资源

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.close();只是关闭当前窗口,整体程序不退出
Application.Exit(); 关闭整体程序,执行销毁窗体和回收程序所有的资源任务

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
第一个关闭当前winform窗体,不退出程序
第二个关闭整个应用程序

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.Close()在winform中是关闭当前对话框
Exit 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口。该方法并不强制退出该应用程序

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
Application.Exit() 是退出程序
this.Close()是关闭当前窗体

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
最好还是使用Application.Exit() ,因为他可以释放资源
用close()类似于hide方法,其实只是隐藏了窗体,当你一直new 一直close你会发现,你cpu的资源会适用的越来越多,,所以close还是会给系统带来负担的。

评分

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

查看全部评分

回复 使用道具 举报
this.close();只是关闭当前窗口;Application.Exit(); 关闭整体程序,将整个项目都给关闭了,释放项目占用资源。

评分

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

查看全部评分

回复 使用道具 举报
this.Close()是关闭当前的窗口
application.exit()是退出整个应用程序
初来乍到 呵呵

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你的一个程序可能有很多form,this.close()是关闭当前form,Application.Exit()直接把整个程序退出了。。。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.close() 窗体关闭,但内存不释放,application.exit() ,应用程序关闭 释放内存

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.Close()是关闭当前窗口
Application.Exit()是关闭整个应用程序

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.Close()是关闭当前窗体
Application.Exit() 是退出程序,释放资源

比如,弹出的子对话框用this.Close()关闭
退出程序,一般Application.Exit()

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
当你需要对某个程序进行判断的时候,用Application.Exist()好些

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
this.close();只是关闭当前窗体,并没有把所有程序关掉
后者是把整个工程项目都关了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
比如你有一个主窗体,和一个子窗体,当你调用.Close()的时候,只是关闭某个子窗体,而应用程序的进程还是存在的,当你调用.Exit()的时候,整个应用程序都关闭,连程序进程都销毁。而当应用程序只有一个窗体的时候,.Close()和.Exit()效果是一样的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马