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 的.