DblClick 事件

expandtri全部显示

当用户在系统双击时间限度内,在一个对象上按下并释放鼠标左键两次,DblClick 事件发生。

Private Sub object_DblClick(Cancel As Integer)

Object    窗体或控件的名称。

Cancel    该设置确定是否发生 DblClick 事件。将 Cancel 参数设为 True (–1) 可取消 DblClick 事件。

说明

窗体上,当用户双击窗体上的空白区域或记录选择器时,DblClick 事件发生。对于控件,当用户在“窗体”视图中双击控件或它的标签时将发生 DblClick 事件。DblClick 事件发生在用户双击窗体或控件之时、双击操作的结果实现之前(例如,在文本框中选取插入点所在单词之前发生 DblClick 事件)。

?DblClick 事件只能应用于窗体、窗体和窗体上的控件,而不能应用于报表上的控件。
?此事件不能应用于选项组中的复选框选项按钮切换按钮。它只能应用于选项组本身。
?此事件不能应用于附属于另一个控件的标签,例如文本框的标签。它只能应用于“独立”的标签。双击附属标签和双击与它附属于的控件有着相同的效果。控件的正常事件将发生,而附属标签的任何事件都不会发生。

若要在此事件发生时运行一个事件过程,请将 OnDblClick 属性设置为宏的名称或 [事件过程]。

对控件而言,双击鼠标左键的结果取决于控件。例如双击文本框中某个词将选择整个词。双击包含一个 OLE 对象的控件将会启动创建该对象的应用程序,并允许它被编辑。

如果 DblClick 事件没有在系统的双击时间限度内发生,窗体、窗体节或控件将识别为两个 Click 事件,而不是一个 DblClick 事件。双击的时间限制取决于鼠标设置(在 Windows“控制面板”中“鼠标”选项的“按钮”选项卡上的“双击速度”中进行设置)。

当 DblClick 事件发生时,通过运行宏或事件过程,可以在双击图标时打开窗口或文档。

双击控件会使 Click 和 DblClick 事件两者都发生。如果在双击控件时该控件还没有获得焦点,控件的 EnterGotFocus 事件将在 Click 事件之前发生。

对接收鼠标事件的对象而言,事件将以下列顺序发生:

MouseDown → MouseUp → Click → DblClick

在双击命令按钮时,事件将以下列顺序发生:

MouseDown → MouseUp → Click → DblClick → MouseUp → Click

第二个单击事件可能无效(例如,如果 Click 宏或事件过程在响应第一个 Click 事件时就打开了一个模式对话框)。为防止第二个 Click 宏或事件过程运行,可以在 DblClick 宏中放入一个 CancelEvent 操作,或者在 DblClick 事件过程中使用 Cancel 参数。注意,通常情况下,不建议双击命令按钮。

如果双击命令按钮之外的其他任何控件,都不会产生第二个 Click 事件。

通过在 DblClick 事件发生时运行宏,可以修改控件的默认双击行为。例如,可以在 OLE 服务器打开之前运行一个宏以响应双击嵌入对象的操作。该宏可以显示一条消息,询问用户是否要打印或编辑该对象。您可以使用用户定义的函数打印该对象。

还可以使用 DblClick 事件通过双击控件而不是单击“确定”按钮来激活要关闭的对话框。DblClick 宏将对该对话框运行 Close 操作。还可以通过使用 SetValue 操作将该对话框的 Visible 属性设为 No,让该宏隐藏该对话框。

在 DblClick 宏中使用 CancelEvent 操作可取消控件的默认双击行为。如果用户要打印本主题前面提及的 OLE 对象,而不是编辑它,则要使用用户定义的函数打印该对象,然后使用 CancelEvent 操作取消打开 OLE 应用程序的操作。

示例

下面的示例说明了如何使用 DblClick 事件过程打开窗体,以显示作为组合框行来源的表中的记录。当用户在“Orders”窗体中双击“Salesperson”组合框时,则屏幕上会显示“Employees”窗体,其中显示在组合框中选中的雇员的记录。

若要尝试该示例,请将下列事件过程添加到名为“Orders”的窗体(该窗体中含有一个名为“EmployeeID”的组合框)中。组合框应将作为“Employees”窗体来源的表作为它自己的行来源。

Private Sub EmployeeID_DblClick(Cancel As Integer)

    DoCmd.OpenForm "Employees", , , _

        "EmployeeID = Forms!Orders!EmployeeID"

End Sub