In C#要不然VB.Net,使用 Visual StudioPackage,我想为CommandBarButton
, 例如Ctrl + E + R,然后,当按下时,关联的CommandBarButton
应该调用它的Execute
方法(我想是这样)。
我怎么能做到呢?
Update
(请避免上面的问题,该问题已经得到解答。)
实际上我正在使用vsct文件,那么我的键绑定是这样的:
<KeyBindings>
<KeyBinding guid="guidMainCmdSet" id="cmdidMyCommand" editor="guidVSStd97"
mod1="Control" key1="E"
mod2="Control" key2="R"/>
</KeyBindings>
MSDN解释说guidVSStd97
是全局的,它似乎会影响 IDE 的所有部分:
https://msdn.microsoft.com/en-us/library/bb165973%28v=vs.90%29.aspx
要在全局范围内定义键绑定,请使用编辑器 ID 值
guidVSStd97。
我的扩展适用于代码窗口的选定文本,因此很奇怪,例如在解决方案资源管理器中,或者在加载的任何项目中我都可以按热键。
然后,我希望能够仅在代码窗口编辑器.
我的问题是:
哪个是编辑ID代码窗口编辑器?
附加要求:
我需要一个MSDN参考查看更多相关的编辑器 ID,我找不到任何相关内容。
在 Visual Studio 中,键盘快捷键与命令相关联,而不是直接与 CommandBarButtons 相关联。从技术上讲,它们称为键盘绑定,并在声明命令的 .vsct 文件中声明。看键绑定元素
编辑:你必须使用:
<KeyBinding guid="guidVSMyPackageCmdSet" id="cmdidMyCommand" editor="guidSourceCodeTextEditor" mod1="Control" key1="X" mod2="Control" key2="X"/>
<GuidSymbol name ="guidVisualBasicEditor" value="{2c015c70-c72c-11d0-88c3-00a0c9110049}" />
<GuidSymbol name ="guidSourceCodeTextWithEncodingEditor" value="{c7747503-0e24-4fbe-be4b-94180c3947d7}" />
<GuidSymbol name ="guidSourceCodeTextEditor" value="{8b382828-6202-11d1-8870-0000f87579d2}" />
...
其中 guidSourceCodeTextEditor 可以是您在 部分中定义的任何名称,您必须从 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0Exp_Config\Editors 获取其值。运行该包后,如果转到“工具”>“选项”窗口、“环境”>“键盘”部分,在“显示包含的命令”中键入命令的名称,您应该会在列表中看到快捷方式,并且编辑器位于括号之间,就好像您有从“使用新快捷方式”列表中选择它。这给我们带来了一个问题:每个 Visual Studio 版本的 guid 是否相同。 AFAIK,这不能保证(没有什么可以阻止微软在新版本中更改指南),但它们可能是相同的。我现在无法验证,因为我使用的计算机只有 VS 2013。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)