MouseDown 事件

expandtri全部显示

当用户按下鼠标按钮时 MouseDown 事件发生。

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

Object    窗体、窗体节或窗体上控件的名称。

Button    按下 (MouseDown) 或释放 (MouseUp) 以触发事件的按钮。如果需要测试 Button 参数,可以使用以下固有常量之一作为位掩码:

常量说明

acLeftButton 鼠标左键的位掩码。

acRightButton 鼠标右键的位掩码。

acMiddleButton 鼠标中键的位掩码。

Shift    在按下或释放 Button 参数所指定的按钮时 SHIFT、CTRL 和 ALT 键的状态。如果需要测试 Shift 参数,可以使用以下固有常量之一作为位掩码:

常量说明

acShiftMask SHIFT 键的位掩码。

acCtrlMask CTRL 键的位掩码。

acAltMask ALT 键的位掩码。

X, Y    鼠标指针当前位置的 x 和 y 座标。X 和 Y 参数始终以缇为单位。

说明

?MouseDown 事件仅适用于窗体、窗体的节和窗体上的控件,不适用于报表上的控件。

?该事件不适用于附到其他控件上的标签,例如文本框的标签。它只适用于“独立”的标签。在附属标签中按下和释放鼠标键与在标签所附属的控件中按下和释放按钮有相同的效果。这种情况下,将只发生控件的正常事件,而不会发生附属标签的独立事件。

若要在该事件发生时运行事件过程,请将 OnMouseDown 属性设为宏的名称或 [事件过程]。

可以使用 MouseDown 事件来指定当按下或释放特定的鼠标按钮时将发生的操作。与 ClickDblClick 事件的不同之处在于:MouseDown 事件使用户能够区分左、中、右的鼠标按钮。也可以为使用 Shift、Ctrl 和 Alt 的鼠标键盘组合键编写代码。

若要使窗体的 MouseDown 事件发生,只需在窗体的空白区域或记录选定器中按下鼠标按钮即可。要使窗体节的 MouseDown 事件发生,只需在窗体节的空白区域中按下鼠标按钮即可。

下列内容适用于 MouseDown 事件:

?当指针停留在窗体或控件上时如果按下鼠标按钮,该对象将接收所有的鼠标事件,直到最后一个 MouseUp 事件(包括 MouseUp 事件)为止。
?如果鼠标按钮被连续按下,那个接收第一次按下后的鼠标事件的对象,将接收所有的鼠标事件,直到所有按钮被释放为止。

若要响应由鼠标移动引起的事件,请使用 MouseMove 事件。

使用 MouseDown 或 MouseUp 宏可以在一旦用户在窗体或控件中按下或释放鼠标按钮时作出响应。但是,宏无法返回按钮代码和确定按了哪个鼠标按钮,因此通常要用事件过程处理这些事件。

不能在 MouseDown 或 MouseUp 宏中使用 CancelEvent 操作,有一种情况例外:可以在 MouseDown 宏中使用 CancelEvent 操作来取消在按鼠标右键时发生的事件。例如,可以取消快捷菜单的显示,并显示您自己的自定义快捷菜单。

示例

下面的示例显示了如何找出引发 MouseDown 事件的鼠标按钮。

若要试用该示例,请将下列事件过程添加到窗体中:

Private Sub Form_MouseDown(Button As Integer, _

         Shift As Integer, X As Single, _

         Y As Single)

    If Button = acLeftButton Then

        MsgBox "You pressed the left button."

    End If

    If Button = acRightButton Then

        MsgBox "You pressed the right button."

    End If

    If Button = acMiddleButton Then

        MsgBox "You pressed the middle button."

    End If

End Sub