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

时间:2017-05-07 02:28:35

标签: vb.net vsto ribbon

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

如果我在“属性”窗口中将其更改为“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

1 个答案:

答案 0 :(得分:1)

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

此外,您可以考虑使用允许动态评估键盘快捷键的getKeyTip回调。 IRibbonUI接口的Invalidate方法使Ribbon用户界面的所有控件的缓存值无效。您可以使用COM加载项中的回调过程自定义功能区UI。对于加载项实现的每个回调,响应都被缓存。例如,如果加载项编写器为按钮实现getImage回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像而不是调用程序,流程。此过程保持原位,直到加载项通过使用Invalidate方法表示缓存值无效,此时,再次调用回调过程并缓存返回响应。然后,加载项可以通过调用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方法很有帮助。它使Ribbon用户界面上的单个控件的缓存值无效。

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