Change 事件

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

當(dāng)文本框組合框的文本部分的內(nèi)容更改時,Change 事件發(fā)生。在選項卡控件中從一頁移到另一頁時,該事件也會發(fā)生。

Private Sub object_Change()

Object    控件的名稱。

說明

該事件的示例包括直接在文本框或組合框中輸入一個字符,或者使用或 Visual Basic 更改該控件的 Text 屬性設(shè)置。

注釋

?使用宏或 Visual Basic 設(shè)置控件的值并不會觸發(fā)控件的 Change 事件。必須直接將數(shù)據(jù)鍵入控件,或設(shè)置控件的 Text 屬性。
?該事件僅適用于窗體上的控件,不適用于報表上的控件。

要在該事件發(fā)生時運行宏或事件過程,請將 OnChange 屬性設(shè)置為宏的名稱或 [事件過程]。

在 Change 事件發(fā)生時,通過運行宏或事件過程,可以調(diào)整控件中的數(shù)據(jù)顯示。也可以在一個控件中顯示數(shù)據(jù)或公式,而在另一個控件中顯示結(jié)果。

當(dāng)計算控件中的值更改時,Change 事件不會發(fā)生。

注釋  Change 事件可能導(dǎo)致級聯(lián)事件發(fā)生。當(dāng)為響應(yīng)控件的 Change 事件而運行的宏或事件過程改變了控件的內(nèi)容時,這種情況便會發(fā)生。例如,當(dāng)更改決定控件值的屬性設(shè)置,如文本框的 Text 屬性時。為避免級聯(lián)事件發(fā)生,應(yīng)謹(jǐn)記下面兩點:

?如果可能,請避免將 Change 宏或事件過程附加到更改控件內(nèi)容的控件上。

 

?避免創(chuàng)建兩個或多個含有相互影響的 Change 事件的控件,例如,兩個互相更新的文本框。

如果使用鍵盤更改文本框或組合框中的數(shù)據(jù),除引起 Change 事件這類的控件事件發(fā)生之外,還將導(dǎo)致鍵盤事件的發(fā)生。例如,如果移到一個新記錄并在記錄的文本框中鍵入一個 ANSI 字符,則下列事件將按如下順序發(fā)生:

KeyDown → KeyPress → BeforeInsert → Change → KeyUp

文本框或組合框控件的 BeforeUpdateAfterUpdate 事件,發(fā)生在輸入新數(shù)據(jù)或在控件中更改了數(shù)據(jù)后,又移到另一個控件(或單擊“記錄”菜單上的“保存記錄”)之后,因而也在控件的所有 Change 事件之后。

LimitToList 屬性設(shè)為“是”的組合框中,當(dāng)輸入了列表值以外的值,并試圖移到另一個控件或保存記錄之后,將發(fā)生 NotInList 事件。它發(fā)生在組合框的所有 Change 事件之后。在這種情況下,組合框的 BeforeUpdate 和 AfterUpdate 事件不會發(fā)生,因為 Microsoft Access 不接受非列表值。