代码解释: a. 主表单mainform声明一个私有的客户列表表单CustomerList,WithEvents关键字表明该对象可以触发事件。 b. 公开一个“被选择”事件,参数为一个客户对象实例。 c. optType控件单击事件的事件处理子过程。单击调出客户列表表单。(这里也涉及一事件,比较底层,稍后再讨论) d. 加载表单,等待用户交互。 e. 客户列表单击事件处理子过程,这里是关键,使用RaiseEvent关键字Generate事件。事件发生后,所有注册了该事件的事件处理子过程将会执行。 f. 客户列表表单的客户选择事件在主表单的处理子过程,亦即所谓的“事件处理器”event handler.(事件处理过程的是名字是object_event(e),VB对事件处理过程不需要显式注册关联,它会auto wireup for us!!)
代码解释: a. 员工数据编辑表单“把持”一个私有的员工类对象实例,WithEvents关键字表明员工类对象实例可以触发事件。 b. 员工类公开一个“数据验证”事件,参数为一个布尔值。表明是否合法 c. txtEmployeeNo控件change事件的事件处理子过程,更改员工号。 d. 更新员工类对象实例的员工号字段,并按需调用验证子过程。 e. 完成自定的验证规则,并把验证结果用作事件的参数通知各注册事件的客户。 f. 员工数据编辑表单是这里唯一的注册事件的客户,根据员工号的合法性来判定是否允许提交该表单