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();

winform窗体关闭方案

上一篇:C# ,.net 对比两个List的方法 亲测


下一篇:# 2021-01-08 #「Linux」- Tiling Window Manager