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

我必须建立与子菜单(PEG,XCCG)上下文菜单,我已经连接了submenu.But事件处理程序,当我运行代码事件只发射第一个事件PEG 请帮助我。我是VSTO的新手。事件处理程序添加到右键菜单子菜单中VSTO Vb.net

+0

嗨请帮我这个。 –

回答

0

我有一个类似的问题,我在这里公布: Respond to Multiple VSTO Context Menus in VB.Net

这两条线后...

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

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

添加一行,看起来像这样

AddHandler XCCG.Click, AddressOf ButtonClick 

AddHandler PEG.Click, AddressOf ButtonClick 

那做了欺骗我。 这里是我的事件处理程序的一个例子,我只是简单地使用标题来确定哪个菜单被点击。就我而言,这足够好。

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