C# 坦克游戏大战中学习相关类(Closing与Closed区别)

 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事件。

可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。

参考:

1、c#坦克大战,有墙体有爆炸等效果

2 、C# FormClosing和FormClosed的区别

 

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页