c# - Visual Studio 加载项。如何禁用菜单项

标签 c# visual-studio-2012 add-in extensibility

我正在为 VS 2012 编写 C# 插件。 我想在工具菜单中添加一个菜单项。我希望这个菜单项在 Studio 启动时被禁用,并根据是否加载解决方案/项目而变为启用或禁用。

我过去可以通过处理 QueryStatus 方法并设置(或不设置) 在适当的时候将状态设置为 vsCommandStatus.vsCommandStatusEnabled。 问题是 QueryStatus 由于某种原因不再被调用,直到我单击菜单“工具”,因此我无法禁用我的菜单项。 有人可以帮忙吗?

我通过处理 OnConnection 连接到我的插件

if(connectMode == ext_ConnectMode.ext_cm_UISetup)
{
........
}

我的插件 xml 看起来像

<LoadBehavior>1</LoadBehavior>
<CommandPreload>1</CommandPreload>
<CommandLineSafe>0</CommandLineSafe>

最佳答案

QueryStatus 在菜单项即将显示之前不会被调用,但这应该不是问题,因为用户在显示之前看不到您的菜单项被禁用。如果您担心用户可能会使用热键来执行命令,那么只需检查该命令是否也可以在您的 Execute 方法中使用。

关于c# - Visual Studio 加载项。如何禁用菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20197023/

相关文章:

c# - 有没有办法从静态方法调用非静态方法?

visual-studio-2012 - 重启VS后RDL文件不显示

c# - 如何更改从 PowerPoint 的 c# 加载项显示的当前幻灯片

vba - Excel 加载项和 VBA 引用的范围是什么?

c# - Azure 网络作业 : C# - The Autodiscover service couldn't be located error

c# - 使用异常处理(可能改变)库的错误代码

c# - windows.web.http 和 ByteArray

linux - Visual Studio 2012负载测试可以捕获Linux服务器和Oracle数据库的性能计数器吗?

c# - 如何解决代码分析 - GUID 数据类型的 CA1720

c# - 如何在没有 Visual Studio 的情况下开发 Microsoft Office 插件