C#程序如何完整退出 - 综述

来源:互联网 发布:淘宝查询131458 编辑:程序博客网 时间:2024/06/07 09:26

首先介绍下关闭程序所需用到的函数:

this.Close();//关闭当前激活的窗体

Application.Exit();//关闭与程序相关的所有正在运行的进程,并自动调用this.Close()关闭当前激活的窗体,但无法退出单独开启的进程

Application.ExitThread();//释放所有进程

Environment.Exit(0);//可退出单独开启的进程

程序退出方法一:点击button控件退出

程序示例:

双击button即可自动生成的函数button_stop_Click

private void button_stop_Click(object sender, EventArgs e){    try    {//此处可填写各种上文所提的方法        this.Close();    }    catch (Exception ee)    {        MessageBox.Show(ee.Message);    }}


程序退出方法二:点击右上角红叉退出

注意:直接点击红叉按钮,程序会调用系统函数直接退出,这时可能某些进程仍然没有关闭。故需要对点击红叉按钮添加函数,方法如下:

在vs编辑器中双击主窗体,自动生成private void Form1_Load(object sender, EventArgs e)函数,在函数中添加(当然也可以在窗体初始化中添加)关闭事件句柄,如下

private void Form1_Load(object sender, EventArgs e){//视自己程序需求选择下面四种种的一种或几种句柄    this.Closing += new CancelEventHandler(Form1_Closing);    this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);    this.Closed += new EventHandler(Form1_Closed);    this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);  }

然后编写各相应函数:

void Form1_Closing(object sender, CancelEventArgs e){    //this.Close();出错,不能在此调用关闭窗体方法    //Application.Exit();不能关闭单独开启的进程    //Environment.Exit(0);可推出单独开启的进程    MessageBox.Show("closing was sent");}void Form1_FormClosing(object sender, FormClosingEventArgs e){    MessageBox.Show("formclosing was sent");}void Form1_Closed(object sender, EventArgs e){    MessageBox.Show("closed");}void Form1_FormClosed(object sender, FormClosedEventArgs e){    MessageBox.Show("formclosed");}

通过实现上述的方法后,点击红叉按钮可以发现,系统关闭的方法中是按照

Form1_Closing

Form1_FormClosing

Form1_Closed

Form1_FormClosed

从上到下的顺序进行的。故可根据自己需要实现其中一个或者几个的函数,并在其中添加程序关闭时所需函数即可。

原创粉丝点击