相关文章推荐
乐观的便当  ·  GROUP BY ...·  1 年前    · 
刚分手的牙膏  ·  readdirectorychangesw-掘金·  1 年前    · 
干练的水桶  ·  sql server in 参数化 ...·  1 年前    · 
protectedoverridevoidOnClosing(CancelEventArgse){base.OnClosing(e);}上面这个是重载winform的cl... protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
}
上面这个是重载winform的closing事件。
问题:
1.base.OnClosing(e);这里是什么意思啊?有什么作用?
2.winform已经有FormClosing事件了,为什么还要重载,重载有什么好处?
谢谢各位了,在线等候!
jiandong3471:您好!能说详细点吗?FormClosing事件也能做画面数据变更的check等相关处理。 1.base.OnClosing(e);这里是什么意思啊?有什么作用?
当窗体关闭的时候 系统有会发送关闭消息给窗体,然后窗体触发OnClosing事件,当你重载这个事件后,触发消息会发送到这个重载事件里面然后再去关闭窗体。打个比方 要关闭这个窗体需要2个步骤 A->B 2个步骤执行玩了以后才真正关闭了窗体。但是当你重载这这个事件后变成了A->C->B,c相当于你写的重载事件,而base.OnClosing(e);的作用是把消息发往B,假如你把base.OnClosing(e)干掉,那么这个ACB流程会走到C而不会继续往下走,也就是窗体不会关闭,大概意思就是在C里面调用B,让关闭消息走完。base.OnClosing(e);的大概意思就是继续按原来的消息规则继续下一步处理。你的任何操作都是操作系统通过消息的方式发给应用程序的。所以人截留这个消息来处理一些过滤信息,比如屏蔽某些按键。
2.winform已经有FormClosing事件了,为什么还要重载,重载有什么好处?
这个就是自己写程序的人处理了。可能他想在这里里面加一些过滤逻辑吧!