2017-07-18 2 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 

J'ai construire un menu contextuel avec le sous-menu (PEG, XCCG) et je joins le gestionnaire d'événements pour submenu.But quand je lance l'événement de code est tir pour seulement premier événement PEG S'il vous plaît Aidez-moi dans cela. Je suis nouveau à VSTO.ajouter gestionnaire d'événements au menu contextuel Sous-menu VSTO Vb.net

+0

Salut S'il vous plaît Aidez-moi dans cela. –

Répondre

0

J'avais une question similaire que j'ai posté ici: Respond to Multiple VSTO Context Menus in VB.Net

après ces 2 lignes ...

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

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

ajouter une ligne qui ressemble à ceci

AddHandler XCCG.Click, AddressOf ButtonClick 

AddHandler PEG.Click, AddressOf ButtonClick 

qui a fait la tour pour moi. Voici un exemple de mon gestionnaire d'événements, j'utilise simplement la légende pour déterminer quel menu a été cliqué. Dans mon cas, c'est assez bon.

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