主题:[讨论]load和init的区别
zhxm_0129
[专家分:0] 发布于 2012-03-14 10:09:00
学习VF过程中遇到load和init,很难理解他们之间的区别。请教各位了,非常感谢。zhxm_0129@126.com 296793768
回复列表 (共6个回复)
沙发
moz [专家分:37620] 发布于 2012-03-15 20:10:00
你可以在各个控件的Load和Init里面加上一句messagebox("标识")看看就知道了.
板凳
akun868 [专家分:150] 发布于 2012-03-17 18:13:00
Load是创建对象前发生,Init是创建对象时发生,Load在Init前触发,表单运行时先执行Load,然后是每一个对象的Init,所有对象创建之后才是表单的Init。一般用法在Load中加载数据如打开表等,Init设置一些属性。
3 楼
zhxm_0129 [专家分:0] 发布于 2012-03-21 08:09:00
非常感谢。
4 楼
cymjx [专家分:40] 发布于 2012-03-21 15:51:00
又学了一招,谢谢!
[em1]
5 楼
taifu945 [专家分:240] 发布于 2012-03-29 16:05:00
[size=4]
转帖一下本人拙作《FoxPro 9.0入门手册》(还未完稿)中关于这个问题的说法:
1、 Load事件 该事件发生在表单开始运行,但系统还未真正创建包括表单在内的所有对象,仅将表单装入内存时。[color=FF0000]故,在表单Load事件的程序段中就不能调用执行表单的其它事件程序,也不能访问表单中的各控件[/color]。
Load事件的触发按先外后里的顺序进行。即,先触发表单集(若有)的该事件,再触发表单的该事件。[color=0000FF]除了表单集或表单,其它对象都没有Load事件[/color]。
2、 Init事件 该事件发生在创建表单时,所以又被称为初始化事件。它发生在Load事件之后,所有其它事件之前。
它的触发按先里后外的顺序进行。即,先依次触发表单中各控件的Init事件,再触发表单的Init 事件,最后触发表单集(若有)的Init事件。表单中各控件的Init事件触发是按建立的先后顺序进行,先建立的先触发。因此,[color=FF0000]建立晚的控件Init事件代码中可访问较早建立的控件,反之不行;表单的Init事件代码中可访问属于它的全部控件[/color]。[/size]
6 楼
lbscyb [专家分:4780] 发布于 2012-03-29 22:15:00
load 事件是发生在表单以及表单集对象创建之前的事件
而init事件是表单容器创建之后,发生的。
表单先创建,然后创建子控件
其实你只要看看C语言的结构就明白了
我来回复