C#中WinForm程序退出方法技巧总结_第1页
C#中WinForm程序退出方法技巧总结_第2页
C#中WinForm程序退出方法技巧总结_第3页
C#中WinForm程序退出方法技巧总结_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#中WinForm程序退出方法技巧总结一、关闭窗体在c#中退出WinForm程序包括有很多方法,如:this.Close();Application.Exit();Application.ExitThread();System.Environment.Exit(0);等他们各自的方法不一样,下面我们就来详细介绍一下。1. this.Close();只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退岀;2. Application.Exit();强制所有消息、中止,退岀所有的窗体,但是若有托管线程(非主线程),也无法干净地退岀;3. Applic

2、ation.ExitThreadO;强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;4.System.Environment.Exit(0);这是最彻底的退出方式,不管什么线程都被强制退岀,把程序结束的很干净.二、登录窗体与主窗体的关闭有许多人在用做c#做登录窗体时会遇到这样的问题,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程仍旧在运行。事实上,关闭Main窗体,只是关闭了Main窗体的线程,并没有关闭程序的主线程,即程序的主线程为登录From。方法一:(rrmLogin为登录窗体,rmMain为主窗体)登录窗体中登录按钮的单击事件

3、privatevoidbuttonl_Click(objectsender,EventArgse)if(txtName.Text=”123456”)FrmMainfm=newFrmMain();fm.Show();this.Dispose(false);/主窗体的FormClosing事件或FormClosed事件代码privatevoidFrmMain_FormClosing(objectsender,FormClosingEventArgse)Application.Exit();/主窗体的FormClosed事件代码privatevoidFrmMain_FormClosed(object

4、senderFormClosedEventArgse)Application.Exit();说明:FormClosing事件或FormClosed事件二一,这两个的区别在于FormClosed在关闭后发生,窗体的关闭动作不可取消;FormClosing在关闭前发生,可取消,只要在里面使用e.Cancel=true;就可以让窗口不能关闭.逬阶技巧:在退出程序前弹出确认退岀程序的对话框主窗体的FormClosing事件代码privatevoidFrmMain_FormClosing(objectsender,FormClosingEventArgse)if(MessageBox.Show(u真的要

5、退出程序吗?J“退出程序”,MessageBoxButtons.OKCancel)=DialogResult.Cancel)e.Cancel=true;/主窗体的FormClosed事件代码privatevoidFrmMain_FormClosed(objectsender,FormClosedEventArgse)Dispose();Application.Exit();小贴士:以下代码会导致显示确定退岀的两次对话框,第一次单击确定第二次单击田可一个都会退出。privatevoidFrmMain_FoTmClosing(objectsender,FormClosingEventArgse)i

6、f(MessageBox.Show(n真的要退出程序吗?“退出程序”MessageBoxButtons.OKCancel)=DialogResult.OK)ApplicationExit();elsee.Cancel=true;分析:第一次单击了退出对话框的确定按钮后,Application.Exit();会导致触发第二次FrmMain_FormClosing()事件,所以就会显示两个确认退出的对话框,但第二对话框的选择对是否退出没有影响。可以改为判断如果单击了不是确认按钮则e.Cancel=true;,确定按钮什么都不写或不做判断,如果要加上Application.Exit();可以将其添加到窗体的FormClosed事件中。方法二:/program.cs程序入问的Main()方法代码,其中FrmLogin为登录窗体,FrmMain为主窗体staticvoidMain()ApplicationEnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);FrmLoginfl=newFrmLogin();if(fl.ShowDialog()=DialogResult.OK)Application.Run(newFrmMain();/登录窗体中的登录按钮代码privatevoid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论