瓜西西

导航

VB form_load 问题

有一个Form , 名为 frmCarRepairInfo , 那 Form_load 是如何运行的呢?

运行 以下:

Load frmCarRepairInfo  <<--- 如果之前已进行过.Show, 这里就会调用之前.show的实例.

frmCarRepairInfo.action = gPublic.ACTION_ADD

frmCarRepairInfo.Show 1, MDIfrm

对于一个CURD 的 Form, 在新增时, 使用以上代码, 发现是不行的. 

问题是在 .Show 之前, 运行 Load form.  VB会使用最近的实例. 

为什么使用 Load?

这是为了在Form 初始化时, 可以进行一些初始值的设置. 如这里的 .action 值的设置.

如果去掉 Load 之一行,  只运行.Show, VB 却是一定重新实例了 frmCarRepairInfo , 

 

使用 Load , 可以在不确定是否显示 form 的时候使用. 但有一个奇怪的细节:

使用 Load时, 不是新实例一个 form,  如上,  form 中的私有变量值没有变. 如上的 .action 值.

但显示时, 却是空白的(注: 也就是说: 是新的显示, 不是之前的显示, 换句话说: form 中包括 data & view , Load 之后, data的数据没有变, 还是之前的, 但 view 是新的), 这容易出错. 不知form 的当前状态.

 

 

另外, 测试以下代码:

(注: 所有form 将使用以下格式, 先赋值 .action, 再进行 Load & show)

frmCarRepairInfo.action = gPublic.ACTION_ADD
Load frmCarRepairInfo  

frmCarRepairInfo.Show 1, MDIfrm

运行第一行时, 是没有运行 form_load 的. 

 

 

posted on 2012-12-18 11:15  瓜西西  阅读(2562)  评论(0编辑  收藏  举报