黑马程序员技术交流社区

标题: winForm中Application.Exit()和this.Close()有什么区别? [打印本页]

作者: 黄威    时间: 2011-11-2 16:53
标题: winForm中Application.Exit()和this.Close()有什么区别?
杨老师的视频中没有详细讲解,求回答,谢谢!
作者: 陈涛    时间: 2011-11-2 16:59
Application.Exit()   
通知所有消息必须终止,并且在处理了消息以后关闭所有应用程序窗口。
this.Close   ()
关闭窗体。
作者: 李荣壮    时间: 2011-11-2 17:33
通俗讲Application.Exit() 就是退出程序,this.Close()是关闭当前窗体

在多窗口的程序中就能体现出区别来了
作者: 章坚    时间: 2011-11-2 18:21
Application.Exit();  首先 Application表示当前的整个程序   你运行Exit()表示整个程序都退出;
而this.Close();   则是在当前页面进行了个Close的操作  关闭窗体  ;THIS 在CS文件中默认为当前窗体

作者: 沙铁健    时间: 2011-11-2 18:53
Application.Exit() 退出整个程序 this.Close() 关闭当前窗体  
直观点得 你试验下  打开一个窗体  放两个按钮  一个按钮弹出一个窗体并且放一个按钮  一个按钮写上Application.Exit()  另一个  写 this.claos() 就能直观的看出来了
作者: yy312232557    时间: 2011-11-4 00:54
关于Application.Exit()和 this.Close()的区别,上面已经很多人回答了,答案也都是的,

Application.Exit()------------表示当前的整个程序全部退出。
this.Close()--------- 则是在当前页面进行了个Close的操作 来关闭窗体  ;


给你一个测试的建议:

如果你知道Win form 中的父窗体和子窗体的概念的话,你可以新建一个父容器窗体, 然后在里面装载一个子容器窗体,这样你在子控件的后台代码中分别运行Application.Exit()和 this.Close(),这个时候你就可以看到区别啦。


或者如果你不知道父窗体和子窗体的话, 给你测试方法二:

你就随便新建一个两个 Win form 窗体,我这里叫窗体A 和窗体B, 你在A上面拖一个button 1 按钮, 在B上面拖一个button 2 按钮,  然后在按钮1的click 事件中 new 出 窗体B, 再在button 2 的 click 事件中  分别执行  Application.Exit()和 this.Close(),  看看效果是什么样的,这个时候你应该可以很好的理解他们的区别了

作者: liucaifu    时间: 2011-11-4 11:37
this.close只是当闭当前的窗体,而Application.Exit()是退所你正在使用的应用程序,不管有多少个窗体都会被关闭,然后退出。
作者: 朱勋    时间: 2011-11-4 15:42
本帖最后由 朱勋 于 2011-11-4 15:42 编辑

Application.Exit()的意思是退出全部的程序。this.close()关闭当前正在运行的窗口,主要在多窗体的程序中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2