技術盤點之VB6事件機制

2021-04-02 19:43:55 字數 1559 閱讀 7435

第一種場景:

主表單調出客戶列表表單選擇乙個客戶

流程:使用者單擊主表單相應控制項調出客戶列表表單,選擇乙個客戶,被選中的客戶資料返回給主表單。

**解釋

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.員工資料編輯表單是這裡唯一的註冊事件的客戶,根據員工號的合法性來判定是否允許提交該表單

總結

「事件」機制是子程式使用的「高階」形式,是為了實現非同步呼叫機制,不是語言核心的新內容。

**通知

callback notifications

**是一種

notion

,一種程式設計想法或概念;通過**機制,程式的一部分**可以對外發出通知,告知程式其它部分**有「某事」發生了(該部分**會作出相應動作)。簡單點說,**就是這樣的乙個過程:程式裡有那麼一些特定方法(乙個或多個),它們由事件源來執行。

vb6中的hook技術

public declare function setwindowshookex lib user32 alias setwindowshookexa byval idhook as long,byval lpfn as long,byval hmod as long,byval dwthreadi...

VB6技巧 總結

vb設定多行textbox的位置 由於自動輸入的文字比較多,最後輸入的跑到下面了,想要自動滾動到下面,本來以為 操作滾動條呢,但是沒有方法。於是我巧妙的採用了 顯示列表是設定了乙個多行 的 textbox 顯示列表.selstart len 顯示列表.text 1 顯示列表.sellength 1 ...

vb6 讀寫檔案

write file dim nhandle as integer,fname as string fname d 1.txt nhandle freefile open fname for output as nhandle print nhandle,0 print nhandle,2 clos...