winform窗体关闭方案

1.

//login form:

private void frmLogin_FormClosed(object sender, FormClosedEventArgs e)
{

System.Environment.Exit(System.Environment.ExitCode); //结束主线程
}

2.

//main form:

private void frmMainform_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("是否退出?", "tip", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
{
e.Cancel = false;

this.Dispose();
this.Close();
System.Environment.Exit(0);//
}
else
e.Cancel = true;
}

关闭指令:

//this.Close();//只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
//Application.Exit();//强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
//Application.ExitThread();//强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
//System.Environment.Exit(0);//这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。

必要时需要释放资源:

//this.Dispose();

原文地址:https://www.cnblogs.com/xifengyeluo/p/14250603.html