2010-10-13 3 views
0

J'ai un simple complément COM pour le bureau que je développe (pour l'accès en particulier).comment obtenir l'objet associé à un menu contextuel dans un complément bureau

J'ai ajouté un élément de commande personnalisé dans le menu contextuel qui s'affiche lorsque vous cliquez avec le bouton droit sur un objet dans le volet de navigation.

Cela fonctionne très bien. Le code de débogage que j'ai ajouté s'exécute (actuellement juste une commande msgbox). La seule chose que je n'arrive pas à comprendre est comment obtenir un objet pour l'objet lié au menu contextuel.

J'aimerais que cela se produise; Je fais un clic droit sur un module dans le volet de navigation, sélectionne ma nouvelle option de menu, puis une boîte de message apparaît avec le nom du module qui est actuellement en surbrillance. Comment pourrais-je m'y prendre?

Voici comment je traite actuellement l'événement:

Public Sub myEventHandler(ByVal ctrl As CommandBarButton, ByRef CancelDefault As Boolean) Handles contextMenu_navPaneObject.Click, contextMenu_navPaneList.Click 

    MsgBox(Microsoft.VisualBasic.Information.TypeName(ctrl) & vbCrLf & _ 
      Microsoft.VisualBasic.Information.TypeName(ctrl.Parent) & vbCrLf & _ 
      Microsoft.VisualBasic.Information.TypeName(ctrl.Parent.Parent)) 

End Sub 

contextMenu_navPaneObject et contextMenu_navPaneList sont des objets privés déclaré à l'aide « WithEvents » et ayant un type d'objet de CommandBarButton.

Est-ce la bonne façon de faire ce que je veux, ou existe-t-il une autre méthode que je devrais utiliser?

Répondre

0

se révèle faire ce que je voulais, je devais exécuter la méthode suivante:

Access.Application.CurrentObjectName()

Ce retour le nom de l'élément que j'avais mis en surbrillance.

J'espère que cela aide les autres!

Questions connexes