Visual Basic6.0事件机制分析


  第一种场景:

  主表单调出客户列表表单选择一个客户

  流程:用户单击主表单相应控件调出客户列表表单,选择一个客户,被选中的客户数据返回给主表单。

  代码解释

  a.       主表单mainform声明一个私有的客户列表表单CustomerList,WithEvents关键字表明该对象可以触发事件。

  b.       公开一个“被选择”事件,参数为一个客户对象实例。

  c.       optType控件单击事件的事件处理子过程。单击调出客户列表表单。(这里也涉及一事件,比较底层,稍后再讨论)

  d.       加载表单,等待用户交互。

  e.       客户列表单击事件处理子过程,这里是关键,使用RaiseEvent关键字Generate事件。事件发生后,所有注册了该事件的事件处理子过程将会执行。

  f.        客户列表表单的客户选择事件在主表单的处理子过程,亦即所谓的“事件处理器”event handler.(事件处理过程的是名字是object_event(e),VB对事件处理过程不需要显式注册关联,它会auto wireup for us!!)