Добавить подменю в контекстное меню ячейки в Excel в vb.net - PullRequest
0 голосов
/ 10 июля 2019

Я сделал надстройку для Excel в vb.net. Я хочу добавить несколько ярлыков в контекстное меню ячейки.Мне удается найти решение здесь, чтобы добавить кнопку https://social.msdn.microsoft.com/Forums/en-US/ae7a6cdd-db2c-4edd-a62a-ac35a466ae5c/how-to-assign-a-method-to-a-commandbarbutton-in-a-cell-contextmenu-in-an-vsto-application-addin-for?forum=vsto

Но я не могу добавить подменю и поместить эти кнопки внутрь

Вот мой фактический код, который мне удается получитьподменю и кнопки разделены, но не кнопки в подменю

Private WithEvents buttonVL03N As CommandBarButton
    Private WithEvents buttonIW53 As CommandBarButton
    Private Sub ThisAddIn_Startup() Handles Me.Startup
        Dim rcCellContextMenu As CommandBar = Globals.ThisAddIn.Application.CommandBars("Cell")
        Dim myMenu As CommandBarPopup

        myMenu = TryCast(rcCellContextMenu.Controls.Add(MsoControlType.msoControlPopup, Before:=3), CommandBarPopup)
        myMenu.Caption = "SAP Transactions"
        myMenu.Tag = "SAP shortcuts "
        buttonVL03N = TryCast(rcCellContextMenu.Controls.Add(MsoControlType.msoControlButton, Id:=1, Before:=3, Temporary:=True), CommandBarButton)
        buttonIW53 = TryCast(rcCellContextMenu.Controls.Add(MsoControlType.msoControlButton, Id:=1, Before:=4, Temporary:=True), CommandBarButton)

        If buttonVL03N IsNot Nothing Then
            buttonVL03N.Caption = "VL03N"
            buttonVL03N.BeginGroup = False
            buttonVL03N.Tag = "Run VL03N"
            buttonVL03N.Enabled = True
        End If

        If buttonIW53 IsNot Nothing Then
            With buttonIW53
                .Caption = "IW53"
                .BeginGroup = False
                .Tag = "Run IW53"
                .Enabled = True
            End With
        End If
    End Sub

, и я попробовал следующее

buttonVL03N = TryCast(myMenu.Controls.Add(MsoControlType.msoControlButton, Id:=1, Before:=3, Temporary:=True), CommandBarButton)

, но, очевидно, это не так просто

1 Ответ

0 голосов
/ 22 июля 2019
    buttonVL03N = TryCast(myMenu.CommandBar.Controls.Add(MsoControlType.msoControlButton, Id:=1, Temporary:=True), CommandBarButton)
    buttonIW53 = TryCast(myMenu.CommandBar.Controls.Add(MsoControlType.msoControlButton, Id:=1, Temporary:=True), CommandBarButton)

работает нормально

...