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.
    }
  }
}
4

1 に答える 1

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

GUIビルダーを使用すると、メニュー項目にカーソルを合わせて名前を入力できます: メニューを開く -> メニュー項目にカーソルを合わせる -> 表示されるボックスをクリックする -> メニュー項目のテキストを入力する -> 次のメニューを入力するアイテムテキスト。

于 2012-04-29T12:53:51.130 に答える