C# 坦克游戏大战,窗体Form中Closing代码如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//窗口关闭前关闭线程
try
{
//以缓和的方式关闭线程
threadRefresh.Join(1);
threadRefresh.Abort();
threadEnemyTank.Join(1);
threadEnemyTank.Abort();
}
catch
{ }
}
其运行结果如下所示:
若将Form中的Closing事件改为Closed代码如下:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//窗口关闭前关闭线程
try
{
//以缓和的方式关闭线程
threadRefresh.Join(1);
threadRefresh.Abort();
threadEnemyTank.Join(1);
threadEnemyTank.Abort();
}
catch
{ }
}
FormClosing事件
在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。
如果取消此事件,则窗体仍然保持打开状态。
当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。
通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写DialogResult的值。
FormClosed事件
在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。
可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。
参考:
2 、C# FormClosing和FormClosed的区别