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

 

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值