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