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事件的发生的更多相关文章
- C# WinForm 父窗体 子窗体 传值
C# WinForm 父窗体 子窗体 传值 本次示例效果如下:Form1为父窗体(包含textBox1.button1)Form2为子窗体(包含textBox2.button2) 父窗体给子窗体传值= ...
- c#在主窗体panel 容器内嵌入另一个窗体(子窗体)的实现
主窗体: 子窗体: 把子窗体嵌入到主窗体的panel 右侧中: 代码: { public MainForm() { InitializeComponent(); } private void Clo ...
- showModalDialog-父窗体子窗体
showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口. farther.html --------------------------- ...
- (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
第一种方法: 用委托,Form2和Form3是同一组 Form2 C#代码 using System; using System.Collections.Generic; using System.C ...
- [转]- Winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
转自:http://heisetoufa.iteye.com/blog/382684 第一种方法: 用委托,Form2和Form3是同一组 Form2 using System; using Sys ...
- C#键盘事件处理父窗体子窗体
: : MessageBox.Show(, , Keys.F1); ...
- Winfrom子窗体刷新父窗体
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...
- Winform子窗体刷新父窗体
调用窗体(父):Form1,被调用窗体(子):Form2方法1: 所有权法//Form1://需要有一个公共的刷新方法public void Refresh_Method(){//...} ...
- Delphi MDI程序 父窗体如何调用当前活动子窗体的函数/过程
一个MDI文本文件编辑器打开了N个子窗体子窗体的.pas文件有一些public的过程和函数我想在父窗体调用当前活动的子窗体函数我用Self.ActiveChildForm无法调用直接frmEdit.x ...
随机推荐
- Elasticsearch 存储模型
- vue v-on监听事件
在html或jsp页面中我们总能碰到监听DOM事件来触发javaScript代码,下面我们就简单聊聊Vue.js中的监听事件是怎么处理的. 在vue.js中监听事件是通过v-on指令来实现的,先看一下 ...
- Vue v-if条件渲染
1.简单的v-if指令,代码如下 <!DOCTYPE html> <html> <head lang="en"> <meta charse ...
- Flume-NG启动过程源码分析(一)(原创)
从bin/flume 这个shell脚本可以看到Flume的起始于org.apache.flume.node.Application类,这是flume的main函数所在. main方法首先会先解析sh ...
- 斯特林公式求N!
n!的长度为 ll ans = log10(2*pi*n)/2 + n*(log10(n/exp(1.0)))+1;
- Angular表单的本地校验和远程校验
AngularJS Form 进阶:远程校验和自定义输入项 表单远程校验 HTML代码: <!doctype html> <html ng-app="form-exampl ...
- androidstudio与unity进行交互
参考地址:http://blog.csdn.net/yangxuan0261/article/details/52427119 http://www.360doc.com/content/17/032 ...
- Linux中的固件加载例子
AP6335模块(BCM4339)在上电运行时,是需要刷入固件的,其在普通WIFI模式和AP模式之间切换时,也是需要加载不同的固件的,其位于/system/etc/firmware/下面:fw_bcm ...
- PowerCmd 2.2 注册码
PowerCmd 是共享软件,现分享注册码一枚: 用户名:Sub 注册码:PCMDA-86128-PCMDA-70594 来源:http://blog.csdn.net/subchen/article ...
- 《Effective C++》——条款20:宁以pass-by-reference-to-const替换pass-by-value
切割(slicing)问题 请看下面代码: class Window { public: ... std::string name()const; //返回窗口名称 virtual void disp ...