2012-04-29 38 views
0

我真的很掙扎着。我想在工具菜單中創建一個項目,以便我有...如何添加一些選項到我的插件菜單?

tools --> myaddin --> my option 1 
        --> my option 2 
        --> my option 3 

我只是無法弄清楚我是怎麼意思去做的。其真煩人心不是吧,這似乎只是去對如何添加項目真正信息...

我已經的代碼是什麼插件庫創建....

public void OnConnection(object application, ext_ConnectMode connectMode, 
    object addInInst, ref Array custom) 
{ 
    _applicationObject = (DTE2)application; 
    _addInInstance = (AddIn)addInInst; 
    if(connectMode == ext_ConnectMode.ext_cm_UISetup) 
    { 
    object []contextGUIDS = new object[] { }; 
    Commands2 commands = (Commands2)_applicationObject.Commands; 

    //Place the command on the tools menu. 
    //Find the MenuBar command bar, which is the top-level command bar holding all 
    // the main menu items: 
    Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar = 
     ((Microsoft.VisualStudio.CommandBars.CommandBars) 
      _applicationObject.CommandBars)["MenuBar"]; 

    //Find the Tools command bar on the MenuBar command bar: 
    CommandBarControl toolsControl = menuBarCommandBar.Controls["Tools"]; 


    //same thing just as a popup 
    CommandBarPopup toolsPopup = (CommandBarPopup)toolsControl; 


    //This try/catch block can be duplicated if you wish to add multiple commands to 
    // be handled by your Add-in, 
    // just make sure you also update the QueryStatus/Exec method to include the new 
    // command names. 
    try 
    { 
     //Add a command to the Commands collection: 
     Command command = commands.AddNamedCommand2(_addInInstance, "Switch", 
      "Switch", "Executes the command for Switch", true, 59, ref contextGUIDS, 
      (int)vsCommandStatus.vsCommandStatusSupported+ 
       (int)vsCommandStatus.vsCommandStatusEnabled, 
      (int)vsCommandStyle.vsCommandStylePictAndText, 
      vsCommandControlType.vsCommandControlTypeButton); 

     //Add a control for the command to the tools menu: 
     if((command != null) && (toolsPopup != null)) { 
     command.AddControl(toolsPopup.CommandBar, 1); 
     } 
    } 
    catch(System.ArgumentException) 
    { 
     //If we are here, then the exception is probably because a command with that 
     // name 
     // already exists. If so there is no need to recreate the command and we can 
     // safely ignore the exception. 
    } 
    } 
} 

回答

0
menuItem.DropDownItems.AddRange(new ToolStrinpItem[] { menuItem1, menuItem2 }); 

使用GUI構建器將鼠標懸停在菜單項上並輸入其名稱: 打開菜單 - >將鼠標懸停在菜單項上 - >單擊出現的框 - >在菜單項中鍵入文本 - >在下一個菜單項文本。

+0

這不是一個表單應用程序沒有menuItem對象:-( – Exitos 2012-04-29 18:14:25

相關問題