我正在尝试创建自定义的Visual Studio扩展。它涉及一个带有combo element的工具栏,我想以编程方式填充该工具栏。
我在vsct中创建了工具栏和组合框,但是我不确定如何在代码中获取对它的引用并向其中添加项目。
我有这个,我从这里去哪里?
CommandID commandId = new CommandID(GuidList.guidExtensionCmdSet, (int) PkgCmdIDList.cmdMyDropdown);
最佳答案
假设cmdMyDropdown是下拉菜单的commandId,则需要创建一个OleMenuCommand并将其添加到OleMenyCommandService。
OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
CommandID commandId = new CommandID(GuidList.guidExtensionCmdSet, (int) PkgCmdIDList.cmdMyDropdown);
OleMenuCommand menuMyDynamicComboCommand = new OleMenuCommand(new EventHandler(OnMenuWorkorderDropdown), commandId);
mcs.AddCommand(menuMyDynamicComboCommand);
在这种情况下,您必须使用
Marshal.GetNativeVariantForObject(String[] yourValues, OleMenuCmdEventArgs.OutValue);
OutValue是传递的下拉引用。
在此处阅读更多信息:http://dotneteers.net/blogs/divedeeper/archive/2008/07/14/LearnVSXNowPart25.aspx