只有Form和FormSet有Load/Unload事件,其余的控件都没有。Load事件,是表单从磁盘装入内存时第一个触发的事件,这个时候,可以决定表单对象是否真正启动的机会,检测环境的代码,都可以放在这个时候进行,如果条件不合适,可以停止对象继续建立,就用return .F.。在Load的时刻,对象还没有成型,里面一切的控件和属性等等,都是没有的,不要在这个时候检查它某个子控件的属性值或执行附带的方法代码,那些都不存在。Load之后,才逐个创建容器内部的控件,从最里层开始,一直往外冒,此时每个控件的Init事件,都在内部的任何子控件Init之后(严格地说,没有办法知道子控件创建的顺序),释放的Destroy事件的顺序也与这个相同。对Form或FormSet来说,到Init阶段,所有的子控件都已经建立起来了,内部的很多操作也已经执行了,这个时候才去检测环境是否满足要求,已经迟了,该发生的错误,早已发生——因为数据表无法打开,创建子控件时的数据绑定就出错。
[ 本帖最后由 TonyDeng 于 2012-12-25 16:10 编辑 ]
[ 本帖最后由 TonyDeng 于 2012-12-25 16:10 编辑 ]
授人以渔,不授人以鱼。