窗口的CLOSED跟CLOSEING时间有什么不同!!

fskjb01 2008-11-03 05:43:42
事情是这样的,在点击关闭窗口的按钮(就是那个叉)时跳出对话框,询问是否要关闭,点是后就application.exit()了!!

如果是CLOSING的话,程序没有完全退出!!

如果使closed的话,程序就退出了!!!

请问这两个事件有什么不同!!
...全文
335 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BG4WFY 2008-11-03
  • 打赏
  • 举报
回复
今天知道了Closing和Closed区别了,学习一下
lovehongyun 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuxingzi001 的回复:]
closing 还有后悔的余地,closed就一定会退出了。
[/Quote]
呵呵.这个说的比较形象

closing是在关闭之前,
closed是在关闭之后触发
如果你想在关闭窗体时弹出提示对话框.那么可以在closing事件中处理
eastkiki 2008-11-03
  • 打赏
  • 举报
回复
Closeing是关闭前发生,当单击关闭按钮时发生,但窗体还没有关闭。
在这里面可以写代码执行一些操作,如取消关闭的操作
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(条件)
e.Cancel=true
endif
}

Closed事件是关闭后发生的事件,此时窗体已经关闭了,可以执行一些恢复,保存设置,记录状态,记录日志等操作。
eastkiki 2008-11-03
  • 打赏
  • 举报
回复
closing表示过程中,closed表示完成后
acqy 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fskjb01 的回复:]
还有一点不明白,就是为什么CLOSEING不能完全退出程序而closed可以呢!!
[/Quote]

退出程序的操作不是由Closing和Closed事件来完成的。Closing和Closed无非就是为了让开发人员能够在窗体关闭之前与之后,执行一些自己的操作。也就是说,如果用户订阅了这两个事件,那么就会在窗体关闭前与关闭后执行订阅函数中的内容,否则就是正常退出了。
小流星子 2008-11-03
  • 打赏
  • 举报
回复
closing 还有后悔的余地,closed就一定会退出了。
fskjb01 2008-11-03
  • 打赏
  • 举报
回复
还有一点不明白,就是为什么CLOSEING不能完全退出程序而closed可以呢!!
宝_爸 2008-11-03
  • 打赏
  • 举报
回复
closing是关闭之前调用,closed是关闭之后调用。
acqy 2008-11-03
  • 打赏
  • 举报
回复
Closing是正准备退出但是还没有退出
Closed是已经完成退出的操作,剩下就是看Closed事件是否有处理了,如果有就处理,如果没有程序就终止了。
估计内部实现大致如下:

public event EventHandler Closing;
public event EventHandler Closed;

protected void DoClose(object sender, System.EventArgs e)
{
if (Closing != null)
Closing(sender, e);
// 在这里做退出的处理
if (Closed != null)
Closed(sender, e);
}

111,076

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧