回 帖 发 新 帖 刷新版面

主题:[讨论]load和init的区别

学习VF过程中遇到load和init,很难理解他们之间的区别。请教各位了,非常感谢。zhxm_0129@126.com 296793768

回复列表 (共6个回复)

沙发

你可以在各个控件的Load和Init里面加上一句messagebox("标识")看看就知道了.

板凳

Load是创建对象前发生,Init是创建对象时发生,Load在Init前触发,表单运行时先执行Load,然后是每一个对象的Init,所有对象创建之后才是表单的Init。一般用法在Load中加载数据如打开表等,Init设置一些属性。

3 楼


非常感谢。

4 楼

又学了一招,谢谢!
[em1]

5 楼

[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 楼

load 事件是发生在表单以及表单集对象创建之前的事件
而init事件是表单容器创建之后,发生的。

表单先创建,然后创建子控件

其实你只要看看C语言的结构就明白了

我来回复

您尚未登录,请登录后再回复。点此登录或注册