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!!)



  第二種場景:

  員工數據編輯表單的數據合法性驗證

  流程:加載員工數據編輯表單對員工數據進行編輯,編輯員工號時觸發員工對象屬性PropertyLet過程(1),PropertyLet過程再觸發數據驗證(2),最後把驗證布爾返回給員工數據編輯表單(3)。

  代碼解釋:

  a. 員工數據編輯表單“把持”一個私有的員工類對象實例,WithEvents關鍵字表明員工類對象實例可以觸發事件。

  b. 員工類公開一個“數據驗證”事件,參數爲一個布爾值。表明是否合法

  c. txtEmployeeNo控件change事件的事件處理子過程,更改員工號。

  d. 更新員工類對象實例的員工號字段,並按需調用驗證子過程。

  e. 完成自定的驗證規則,並把驗證結果用作事件的參數通知各註冊事件的客戶。

  f. 員工數據編輯表單是這裏唯一的註冊事件的客戶,根據員工號的合法性來判定是否允許提交該表單

  總結

  “事件”機制是子程序使用的“高級”形式,是爲了實現異步調用機制,不是語言核心的新內容。

<html>
<body>
<ul οnclick=this.removeChild(li1)>我是ul
<li id=li1>01
<li id=li2>02
</ul>
</body>
</html>

  回調通知callback notifications

  回調是一種notion,一種編程想法或概念;通過回調機制,程序的一部分代碼可以對外發出通知,告知程序其它部分代碼有“某事”發生了(該部分代碼會作出相應動作)。簡單點說,回調就是這樣的一個過程:程序裏有那麼一些特定方法(一個或多個),它們由事件源來執行。 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章