5

我正在尝试在我的 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>

SampleButton 的键提示不是 Z,而是替换为“Y2”。无论选项卡的键提示(当前为“B”)如何,我都会看到这种行为。我检查以确保没有其他键提示为“BZ”的按钮可能有冲突,但没有看到任何其他按钮。

如果我尝试将 SampleButton 的键提示设为“Y”,我也会看到这种行为,但我认为这是因为所有“Y*”键提示都是为冲突而保留的。

顺便说一句,我也遇到了“C”键提示的这个问题,但由于某些无法解释的原因,只有当我没有<group>. 一旦我向 中添加标签<group>,“C”就不再被“Y2”覆盖。非常奇怪的行为。

任何人都有任何想法可能导致这种情况?提前致谢!

4

3 回答 3

4

我遇到了同样的问题,我最终只是将键提示值从大写的“Z”更改为小写的“z”并且它起作用了。不知道为什么。希望它对你有用。

于 2013-06-06T15:37:59.257 回答
0

抱歉,接受的答案对我不起作用!在我的 VSTO 解决方案中,我凭经验发现一个有效的 ALT 快捷方式是“G”。所以在我的 C# 代码中,我设置了:

Globals.Ribbons.GetRibbon<MyRibbon>().tabMyRibbonTab.KeyTip = "GGG";

我使用三个 G 来尽量减少与其他加载项的冲突。这对我有用,我什至可以使用 SendKeys 在 Excel 2007 中选择 RibbonTab(请参阅另一个问题)。

问候,约尔格

于 2015-01-15T16:48:53.937 回答
0

这是办公应用程序中自定义(相对于内置)选项卡的标准行为。要自己测试这一点,只需通过 UI 添加几个自定义选项卡。接下来按 ALT 键并注意所有自定义选项卡是 Y1、Y2、Y3、加速器..

但是,正如 OP 所指出的,这不应该是在以编程方式或通过 XML 为插件的功能区 UI 元素设置 keytip 属性时的行为。由于它只发生在有限的关键组合子集上,我想这可能是一个错误。建议在microsoft connect 网站上记录此内容。

于 2013-05-06T04:41:35.070 回答