- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
c#之关闭窗体的实现方法
目录c#关闭窗体的方法关闭窗体的四种方法close()和dispose()的区别Form.show()和Form.ShowDialog()的区别托管资源和非托管资源c#弹窗提示并自动关闭方法总结
c#关闭窗体的方法
关闭窗体的四种方法
1.close():
指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。
此方法会调用dispose()方法,所以它会自动的帮我们释放内存,除了以下两种情况:
(1)该窗体是多文档应用程序(MDI)的一部分并且此窗体不可见;(2)此窗体是模态窗体。
close()方法执行的时候会触发两个事件:Form_Closing和Form_Closeed事件,Form_Closing是在窗体关闭时执行,Form_Closed是在窗体关闭之后执行,所以如果想取消关闭窗体,可以在Form_Closing事件里取消。
2.Application.Exit():
强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出。
3.Application.ExitThread():
强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题。
4.System.Environment.Exit(0);
这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。参数0:代表程序正常退出;参数1:代表程序非正常退出。
close()和dispose()的区别
close():这个方法会自动调用dispose()方法。dispose():这个方法的作用是释放组件使用的所有资源,.NET提供的垃圾自动回收机制,可以帮我们自动回收垃圾对象,可是垃圾回收器只能回收托管资源,而不能回收非托管资源,而且垃圾回收器也并不是立即回收,而是每隔一段时间才会回收一次,每次回收的时间我们都不知道。
所以dispose()方法是为了弥补这种机制所产生的方法,调用dispose(true)方法可以释放托管和非托管资源,而且它可以不必等待垃圾回收器来自动释放,调用此方法可以显示释放资源。
Form.show()和Form.ShowDialog()的区别
From.Show():窗体显示出来的是非模态窗体From.ShowDialog():窗体显示出来的是模态窗体,而且点击窗体右上角的关闭按钮时,它不是调用close()方法,而是调用hide()方法。所以它并不是真正的关闭,再调用此方法窗体还会出现。而非模态窗体,点击关闭的时候,会调用close()方法,再次调用Show()方法,就会报错,因为窗体对象已被释放。
托管资源和非托管资源
托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等
如果某类型使用到了非托管资源,那么,就需要让此类型继承接口IDisposable。需要显示释放资源,因为垃圾回收器并不会回收非托管资源。
c#弹窗提示并自动关闭方法
刚学C#不久,就写个工具,总结写一个简便自定义提示窗口方法,并自动关闭。
1.在项目添加windowsform(非usercontrol),命名为Form_wait。
2.在Form_wait,加入需要控件与一个定时器timer1。
数字10为计时显示,10秒后自动默认选择是
timer1属性interval设为1000,即tick事件1s进入
3.定义Form_wait响应事件:
privatevoidtimer1_Tick(objectsender,EventArgse)//1s进入一次
count-=1;
this.label2.Text=count.ToString();
if(count==0)
this.timer1.Stop();
this.DialogResult=DialogResult.OK;//这里是重点,在主窗口里能读取返回值
privatevoidbutton1_Click(objectsender,EventArgse)//“是”
{
this.timer1.Stop();
this.DialogResult
您可能关注的文档
最近下载
- 材料及配件采购方案.docx VIP
- 中国重症患者肠外营养治疗临床实践专家共识(2024).pptx VIP
- 2025年福建省中小学教师招聘考试真题及答案.docx VIP
- 人教版物理八上光的直线传播 (3).ppt VIP
- 2024年事业单位医疗卫生综合知识考试题库(含答案).pdf VIP
- 无痛纤支镜麻醉技术规范.pptx VIP
- 广东春季高考2025数学试卷.doc VIP
- 浙江省杭州市2024—2025学年高三上学期期末学业水平测试语文试题(含答案).doc.docx
- 专升本英语时态练习题.doc VIP
- 实验03 1-溴丁烷的化学性质-高二化学(人教版2019选择性必修3).docx VIP
文档评论(0)