MouseMove 事件

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

expandtri全部顯示

用戶移動(dòng)鼠標(biāo)時(shí) MouseMove 事件發(fā)生。

Private Sub object_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Object    窗體、窗體節(jié)或窗體上控件的名稱。

Button    按下 (MouseDown) 或釋放 (MouseUp) 以觸發(fā)事件的按鈕。如果需要測試 Button 參數(shù),則可以使用以下固有常量之一作為位掩碼:

常量說明

acLeftButton 鼠標(biāo)左鍵的位掩碼。

acRightButton 鼠標(biāo)右鍵的位掩碼。

acMiddleButton 鼠標(biāo)中間鍵的位掩碼。

Shift    在按下或釋放 Button 參數(shù)所指定的按鈕時(shí) SHIFT、CTRL 和 ALT 鍵的狀態(tài)。如果需要測試 Shift 參數(shù),則可以使用以下固有常量之一作為位掩碼:

常量說明

acShiftMask SHIFT 鍵的位掩碼。

acCtrlMask CTRL 鍵的位掩碼。

acAltMask ALT 鍵的位掩碼。

X, Y    鼠標(biāo)指針當(dāng)前位置的 x 和 y 座標(biāo)。X 和 Y 參數(shù)始終以緹為單位表示。

說明

MouseMove 事件僅適用于窗體、窗體的節(jié)和窗體上的控件,不適用于報(bào)表上的控件。

該事件不適用于附到其他控件上的標(biāo)簽,例如文本框的標(biāo)簽。它只適用于“獨(dú)立”的標(biāo)簽。在附屬標(biāo)簽中移動(dòng)鼠標(biāo)與在標(biāo)簽所附屬的控件中移動(dòng)鼠標(biāo)有相同的效果。這種情況下,將只發(fā)生控件的正常事件,而不會(huì)發(fā)生附屬標(biāo)簽的獨(dú)立事件。

若要在該事件發(fā)生時(shí)執(zhí)行事件過程,請(qǐng)將 OnMouseMove 屬性設(shè)置為宏的名稱或 [事件過程]。

當(dāng)鼠標(biāo)指針在對(duì)象上移動(dòng)時(shí),將連續(xù)地產(chǎn)生 MouseMove 事件,除非另有對(duì)象也產(chǎn)生了鼠標(biāo)事件,否則只要指針位于對(duì)象的邊框內(nèi),對(duì)象就能識(shí)別 MouseMove 事件。

若要使窗體的 MouseMove 事件發(fā)生,請(qǐng)?jiān)诖绑w空白區(qū)域、記錄選定器或滾動(dòng)條上移動(dòng)鼠標(biāo)指針。要使窗體節(jié)的 MouseMove 事件發(fā)生,請(qǐng)?jiān)诖绑w節(jié)的空白區(qū)域上移動(dòng)鼠標(biāo)指針。

注釋

?即使鼠標(biāo)不動(dòng),移動(dòng)窗體也會(huì)觸發(fā) MouseMove 事件。當(dāng)窗體在指針下面移動(dòng)時(shí),也將產(chǎn)生 MouseMove 事件。如果宏或事件過程為響應(yīng) MouseMove 事件而移動(dòng)窗體,事件將級(jí)聯(lián)發(fā)生(即連續(xù)地產(chǎn)生 MouseMove 事件)。

 

?如果兩個(gè)控件非常接近,當(dāng)在其間隙中快速移動(dòng)指針時(shí),可能不會(huì)針對(duì)該間隙發(fā)生 MouseMove 事件(例如,這可能是窗體節(jié)的 MouseMove 事件)。在這種情況下,可能需要對(duì)相鄰控件中以及窗體節(jié)中的 MouseMove 事件作出響應(yīng)。

若要運(yùn)行宏或事件過程以響應(yīng)鼠標(biāo)鍵的按下和釋放事件,請(qǐng)使用 MouseDownMouseUp 事件。

可以使用 MouseMove 宏在一旦用戶將鼠標(biāo)移過窗體或控件上時(shí)進(jìn)行響應(yīng)。但是,當(dāng)移動(dòng)發(fā)生時(shí),宏無法返回按鈕代碼和確定鼠標(biāo)按鈕的狀態(tài)或鼠標(biāo)指針的坐標(biāo),因此通常要用事件過程處理這些事件。

不能在 MouseMove 宏中使用 CancelEvent 操作。

示例

下面的示例確定鼠標(biāo)的位置以及是否按鼠標(biāo)左鍵和/或 SHIFT 鍵。移動(dòng)鼠標(biāo)時(shí),鼠標(biāo)指針位置的 x 和 y 坐標(biāo)會(huì)顯示在標(biāo)簽控件中。

若要試用該示例,請(qǐng)將下面的事件過程添加到包含名為“Coordinates”標(biāo)簽的窗體中:

Private Sub Detail_MouseMove(Button As Integer, _

     Shift As Integer, X As Single, Y As Single)

    Dim intShiftDown As Integer, intLeftButton As Integer

    Me!Coordinates.Caption = X & ", " & Y

    ' Use bit masks to determine state of

    ' SHIFT key and left button.

    intShiftDown = Shift And acShiftMask

    intLeftButton = Button And acLeftButton

    ' Check that SHIFT key and left button

    ' are both pressed.

    If intShiftDown And intLeftButton > 0 Then

        MsgBox "Shift key and left mouse button were pressed."

    End If

End Sub