MS Access - 上下文菜单 - 获取根控制
MS Access - context menu - get root control
我有一个表格,用户可以在其中预览与发票相关的不同文档(采购订单、发票、运输说明...)。为了简化,我将它们称为 doc#1、doc#2、doc#3。每个文档都保存在特定的目录中。
在发票表格上,有 3 个按钮(button_doc1、button_doc2、button_doc#3)
我想要以下行为:
- 左键单击时,用户可以预览文档(报告在右键单击事件中打开)
- 右键单击时,上下文菜单会显示提供包含文档的打开目录。
所以我尝试使用如下定义的上下文菜单:
Sub CreateFormShortcutMenu_OpenReportDir()
Dim cmbRightClick As Office.CommandBar
Dim cmbControl As Office.CommandBarControl
' Create the shortcut menu.
Set cmbRightClick = CommandBars.Add("cmdShortCutMenu_FormOpenReportDir", msoBarPopup, False, True)
With cmbRightClick
' Add the DeleteRecord command.
Set cmbControl = .Controls.Add(msoControlButton, , , , True)
With cmbControl
.BeginGroup = True
.Caption = "Open dir"
.OnAction = "=CallbackOpenDocDir()"
.FaceId = 106
End With
End With
Set cmbControl = Nothing
Set cmbRightClick = Nothing
End Sub
我想知道是否可以在 3 个按钮上使用相同的上下文菜单(以避免冗余代码)?如何获取触发回调的按钮(名称或参考)。
Public Function CallbackOpenDocDir()
dim strDocName as string
'code to get the button / doc name
select case strDocName
case "Doc#1"
openFileExplorer doc1Dir
case "Doc#2"
openFileExplorer doc2Dir
case "Doc#3"
openFileExplorer doc3Dir
end select
End Function
谢谢你的想法。
您可以使用此表单的代码来确定点击的按钮名称:
Me.ActiveControl.Name
或从任何地方打电话
Screen.ActiveControl.Name
我有一个表格,用户可以在其中预览与发票相关的不同文档(采购订单、发票、运输说明...)。为了简化,我将它们称为 doc#1、doc#2、doc#3。每个文档都保存在特定的目录中。
在发票表格上,有 3 个按钮(button_doc1、button_doc2、button_doc#3)
我想要以下行为:
- 左键单击时,用户可以预览文档(报告在右键单击事件中打开)
- 右键单击时,上下文菜单会显示提供包含文档的打开目录。
所以我尝试使用如下定义的上下文菜单:
Sub CreateFormShortcutMenu_OpenReportDir()
Dim cmbRightClick As Office.CommandBar
Dim cmbControl As Office.CommandBarControl
' Create the shortcut menu.
Set cmbRightClick = CommandBars.Add("cmdShortCutMenu_FormOpenReportDir", msoBarPopup, False, True)
With cmbRightClick
' Add the DeleteRecord command.
Set cmbControl = .Controls.Add(msoControlButton, , , , True)
With cmbControl
.BeginGroup = True
.Caption = "Open dir"
.OnAction = "=CallbackOpenDocDir()"
.FaceId = 106
End With
End With
Set cmbControl = Nothing
Set cmbRightClick = Nothing
End Sub
我想知道是否可以在 3 个按钮上使用相同的上下文菜单(以避免冗余代码)?如何获取触发回调的按钮(名称或参考)。
Public Function CallbackOpenDocDir()
dim strDocName as string
'code to get the button / doc name
select case strDocName
case "Doc#1"
openFileExplorer doc1Dir
case "Doc#2"
openFileExplorer doc2Dir
case "Doc#3"
openFileExplorer doc3Dir
end select
End Function
谢谢你的想法。
您可以使用此表单的代码来确定点击的按钮名称:
Me.ActiveControl.Name
或从任何地方打电话
Screen.ActiveControl.Name