2017-07-18 5 views
0
ProgramEngines = ContextMenu.Controls.Add(Type:=Office.MsoControlType.msoControlPopup, Before:=1) 
       With ProgramEngines 
        .Caption = "Program Engines" 
        With .Controls.Add(Type:=Office.MsoControlType.msoControlPopup, Before:=1) 
         .Caption = "Gas" 
         For intCnt = 0 To colEngineData.Count - 1 
          If Strings.Split(colEngineData.Item(intCnt), "~")(0) = "Gas" Then 
           **PEG** = .Controls.Add(Type:=Office.MsoControlType.msoControlButton) 
           With PEG 
            .Caption = Strings.Split(colEngineData.Item(intCnt), "~")(1)         
            .FaceId = 548 
           End With 
          End If 
         Next 
        End With 

XCCEngines = ContextMenu.Controls.Add(Type:=Office.MsoControlType.msoControlPopup, Before:=2) 

       With XCCEngines 
        .Caption = "XCC Engines" 

        With .Controls.Add(Type:=Office.MsoControlType.msoControlPopup, Before:=1) 
         .Caption = "Gas" 
         For intCnt = 0 To colEngineDataXCC.Count - 1 
          If Strings.Split(colEngineDataXCC.Item(intCnt), "~")(0) = "Gas" Then 
           **XCCG** = .Controls.Add(Type:=Office.MsoControlType.msoControlButton) 
           With XCCG 
            .Caption = Strings.Split(colEngineDataXCC.Item(intCnt), "~")(1)         
            .FaceId = 548 
           End With 
          End If 
         Next 
        End With 


     Private Sub ButtonClick(ByVal ctrl As Office.CommandBarButton, ByRef Cancel As Boolean) Handles PEG.Click, XCCG.Click 
      PutValue_Engine_Trans(ctrl.Caption) 
     End Sub 

ich bauen ein Kontextmenü mit Untermenü (PEG, XCCG), und ich habe den Ereignishandler für submenu.But angebracht, wenn ich den Code Ereignis ausgeführt ist feuern nur für das erste Event PEG Bitte Helfen Sie mir dabei. Ich bin neu in VSTO.Ereignishandler Kontextmenü Untermenü in Vsto Vb.net hinzufügen

+0

Hallo Bitte helfen Sie mir dabei. –

Antwort

0

Ich hatte eine ähnliche Frage, die ich hier gepostet: Respond to Multiple VSTO Context Menus in VB.Net

nach diesen 2 Zeilen ...

**XCCG** = .Controls.Add(Type:=Office.MsoControlType.msoControlButton) 

**PEG** = .Controls.Add(Type:=Office.MsoControlType.msoControlButton) 

eine Zeile hinzufügen, wie diese, die

AddHandler XCCG.Click, AddressOf ButtonClick 

AddHandler PEG.Click, AddressOf ButtonClick 

sieht das tat Trick für mich. Hier ist ein Beispiel für meinen Event-Handler. Ich verwende einfach die Beschriftung, um zu bestimmen, auf welches Menü geklickt wurde. In meinem Fall ist das gut genug.

Private Sub cb_Click(Ctrl As CommandBarButton, ByRef CancelDefault As Boolean) Handles cb.Click 
     MsgBox(Ctrl.Caption, MsgBoxStyle.ApplicationModal, "Fast View") 
    End Sub 
Verwandte Themen