我正在为 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/