原创 为什么VB的Form_Load() 中的代码没有运行

2008-6-1 22:56 8121 4 4 分类: 软件与OS




         最近,在编写一个数据采集程序时,采用了多窗体形式。其中窗体Form2用来以表格方式显示数据,因此把数据显示程序写在了此窗体的Form_Load()中,并在主窗体中设置一个按钮运行Load Form2。但是运行中发现,只有第一次时可以显示正确的数据,以后每次调用时数据并不更新。


        经查,原来Load  Form2 只在第一次调用时运行Form_Load() 中的代码。为此在显示数据窗口退出时加了     Unload Form2语句,希望将FORM2卸载。但重新运行Load  Form2 后仍然显示原来的数据。也有人建议将FORM2属性中的AUTODRAW由FALSE改为TRUE,实践证明也是没有作用的。


        通过实验证明,以下两种方法是可行的:


(1)把数据显示的程序写到主窗口下调用FORM2的按钮过程中。这时在调用FORM2之前数据已更新。


(2)在Form2中另建一个过程 Form2_Activate(),将把数据显示的程序写到此过程中。由于Form2_Activate()是在窗体重新获得焦点时触发,因此程序在每次显示FORM2时运行,数据及时得到更新。


总结:form_load 和form_Activate 的区别 


        form_load,发生在装载窗体对象的时候
        form_Activate   发生在窗体得到焦点的时候
他们触发的时机完全不同,一个窗体,正常情况下,在其生存期内,form_load只会发生一次,而form_activate可能会发生无数次。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条