我正在尝试在我的一个Excel 2010插件中创建自定义功能区,并且出于某种原因,Office会覆盖某些键提示(键盘加速器)。我知道如果Office看到冲突,它通常会覆盖“Y”,“Y2”,“Y3”等的一个或两个键提示。但在这个例子中,我的标签中只有一个按钮,所以没有其他控制它与。冲突。
这是XML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tabid_1" label="SampleTab" keytip = "B">
<group id="grpid_1" label="SampleGroup">
<button id="btnid_1" label="SampleButton" keytip="Z" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
而不是具有Z的键提示的SampleButton,它被替换为“Y2”。 无论Tab的键提示(当前为“B”),我都会看到这种行为。 我检查确保没有其他按钮的“BZ”键提示可能有冲突,但没有看到任何。
如果我尝试将SampleButton的keytip设为“Y”,我也会看到这种行为,但我认为这是因为所有“Y *”键提示都是为冲突保留的。
顺便说一下,我也遇到了“C”的关键提示这个问题,但是出于一些未解释的原因,只有当我没有<group>
的标签时才会发生这种情况。一旦我向<group>
添加了标签,“C”就会停止被“Y2”覆盖。非常奇怪的行为。
任何人都有任何想法可能导致这种情况? 提前谢谢!
答案 0 :(得分:4)
我遇到了同样的问题,我最后只是将keytip值从大写的“Z”更改为小写的“z”,然后就可以了。不知道为什么。希望它适合你。
答案 1 :(得分:0)
这是office应用程序中自定义(而不是内置)选项卡的标准行为。 要自己测试,只需在UI中添加几个自定义选项卡。 接下来点击ALT键并注意所有自定义选项卡是如何Y1,Y2,Y3,加速器..
然而,如OP所述,这不应该是以编程方式设置keytip属性或通过XML为addin的功能区UI元素设置的行为。 因为它只发生在有限的关键组合子集中,我想它可能是一个bug。建议在microsoft connect website上记录此内容。
答案 2 :(得分:0)
很抱歉,但接受的答案对我不起作用! 在我的VSTO解决方案中,我凭经验发现一个工作的ALT-Shortcut是“G”。 所以在我的C#代码中我设置了:
Globals.Ribbons.GetRibbon<MyRibbon>().tabMyRibbonTab.KeyTip = "GGG";
我使用三个G来最小化与其他加载项的冲突。 这对我有用,我甚至可以使用SendKeys在Excel 2007中选择RibbonTab(参见this其他问题)。
问候,Jörg