2016.6.18主窗体子窗体InitializeComponent()事件Load事件发生顺序以及SeleChanged事件的发生
Posted mol1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016.6.18主窗体子窗体InitializeComponent()事件Load事件发生顺序以及SeleChanged事件的发生相关的知识,希望对你有一定的参考价值。
主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序
1、主窗体定义事件 new 主窗体() 构造函数进入主窗体InitializeComponent函数,该函数中有各字框体的new创建语句,因此:
2、依次执行各子窗体InitializeComponent函数
3、主窗体new事件结束后,并不创建任何窗体或子窗体,也就没有任何Load事件发生。直到主窗体Show事件。
4、主窗体Show事件后,顺序执行各子窗体Load事件,注意!!并不是先执行主窗体Load事件!
5、最后才执行主窗体Load事件
结论:主窗体的InitializeComponent事件早于子窗体InitializeComponent事件发生,但子窗体Load事件早于主窗体Load事件发生。
推论:
1、子窗体selechanged等事件在子窗体的Load事件中可能触发,此时主窗体Load事件尚未执行,可能会有空值情况出现
2、等到主窗体Load事件执行时,往往会给子窗体赋值,又可能会触发子窗体selecange事件发生,注意是否会有空值出现
3、主窗体Load事件中为DV、Grid等窗体绑定数据源时,也会触发这些控件的selecanged事件,以至其它关联控件的selechagne事件发生,注意是否有空值出现
以上是关于2016.6.18主窗体子窗体InitializeComponent()事件Load事件发生顺序以及SeleChanged事件的发生的主要内容,如果未能解决你的问题,请参考以下文章