全部博文(1293)
分类: C#/.net
2015-01-20 20:13:31
关于Close和FormClosed FormClosing,花点时间来理理是有点意思的。
上图,点击[FormClose]的执行流程:先跑到button1_Click去Close(),再进入Form1_FormClosing,最后才进入Form1_FormClosed。
很多时候,我们希望点击button1退出;有些时候又希望点击右上角的X退出。而这两种退出,都会进入Form1_FormClosing、Form1_FormClosed。故如果退出后要进行一些操作,推荐将这些操作放在Form1_FormClosed/Form1_FormClosing中,这样像button1的click事件只需要Close就可以了。能有效避免代码冗余。
参考文献:
FormClosing事件
在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。
如果取消此事件,则窗体仍然保持打开状态。
当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。
通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写DialogResult的值。
FormClosed事件
在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。
可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体