首先介绍下关闭程序所需用到的函数:
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
从上到下的顺序进行的。故可根据自己需要实现其中一个或者几个的函数,并在其中添加程序关闭时所需函数即可。