如何更改 VSTO 插件功能区的 KeyTip 属性?

How do you change the KeyTip property of a VSTO AddIn ribbon?

我正在尝试更改我创建的 RibbonTab 对象的 KeyTip 属性。当我在 Excel 中 运行 我的插件时,它显示 KeyTip 是 "X" 而不是 "JJJ"。

如果我在属性 window 中将它更改为 "JJJ" 它工作正常但我想了解为什么我不能这样更改它。

我需要做什么才能让 RibbonTab.KeyTip 属性 加载为 "JJJ"?

(仅供参考,这是我的第一个项目,所以我还在学习)

谢谢,

Imports Microsoft.Office.Tools.Ribbon

Public Class Ribbon1

Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load

   tabRibbon1.KeyTip = "JJJ"

End Sub

The Fluent UI(又名 Ribbon UI)从一开始就是静态的。当加载项 return 是 UI 标记(由功能区设计器生成或只是原始 XML 标记)时,您可以仅在启动时设置一次 keytip 属性.

您也可以考虑使用 getKeyTip 回调,它允许动态评估键盘快捷键。 IRibbonUI 接口的 Invalidate 方法使功能区用户界面的所有控件的缓存值无效。您可以使用 COM 加载项中的回调过程自定义功能区 UI。对于加载项实现的每个回调,都会缓存响应。例如,如果外接程序编写器为按钮实现 getImage 回调过程,调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存图像而不是调用步骤。此过程保持原位,直到加载项使用 Invalidate 方法发出缓存值无效的信号,此时再次调用回调过程并缓存 return 响应。然后,加载项可以通过调用 Refresh 方法强制立即更新 UI。例如:

Dim MyRibbon As IRibbonUI 

Sub MyAddInInitialize(Ribbon As IRibbonUI) 
  Set MyRibbon = Ribbon 
End Sub 

Sub myFunction() 
  MyRibbon.Invalidate() ‘ Invalidates the caches of all of this add-in’s controls 
End Sub

您可能还会发现 IRibbonUI 接口的 InvalidateControl 方法很有帮助。它使功能区用户界面上单个控件的缓存值无效。

在以下系列文章中阅读有关功能区的更多信息UI: