我正在开发一个Visual Studio扩展,其中我将元素添加到项目中引用的右键单击(上下文)菜单。这是通过定义与IDM_VS_CTXT_REFERENCE
的父母Group
完成的。找出在Visual Studio扩展中点击了哪个引用
我想表明,隐藏这取决于被点击的参考菜单元素,所以我定义我的菜单项为OleMenuCommand
:
if (commandService != null)
{
var menuCommandID = new CommandID(CommandSet, CommandId);
var menuItem = new OleMenuCommand(this.MenuItemCallback, menuCommandID);
menuItem.BeforeQueryStatus += (sender, args) =>
{
var button = (OleMenuCommand)sender;
button.Visible = this.CommandVisible();
};
commandService.AddCommand(menuItem);
}
我实现CommandVisible
方法麻烦。比方说,如果参考名称以A
开头,我想要显示菜单。我会怎么做?
我觉得自己被困在interop地狱里,瞎猜在任意的id,guids和不存在/不可理解的文档上。
我已成功地挖掘出项目我的引用是为IVsProject
有的ID为参考,但调用GetMkDocument
回报什么(它的工作原理与项目文件,但不引用)。
我该怎么做?我在哪里可以找到关于如何做到这一点的文档?
GetMkDocument只适用于实际的文档,引用只是一种视觉援助,实际上不是文件。我正在进行一些测试,看看我能否帮助你。 –
工作出现了,但我把它拿到了尽头,关键是要使用使用itemid的IVsHierarchy方法。我认为你在正确的轨道上。 –