2017-05-07 10 views
0

私が作成したRibbonTabオブジェクトのKeyTipプロパティを変更しようとしています。 Excelでアドインを実行すると、KeyTipが「JJJ」ではなく「X」であることが示されます。VSTO AddInリボンのKeyTipプロパティをどのように変更しますか?

プロパティウィンドウで「JJJ」に変更するとうまくいきますが、なぜこのように変更できないのかを理解したいと思います。

"JJJ"として読み込むためにRibbonTab.KeyTipプロパティを取得するには何が必要ですか?

(FYIこれは私はまだ勉強私の最初のプロジェクトである)

おかげで、

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

は流暢なUI(別名リボンUI)は、その誕生から静的なものです。アドインが(リボンデザイナまたは生のXMLマークアップだけで生成された)UIマークアップを返すときに起動時にkeytip属性を1回設定することができます。

また、getKeyTipコールバックを使用すると、キーボードショートカットを動的に評価することができます。 IRibbonUIインターフェイスのInvalidateメソッドは、リボンユーザーインターフェイスのすべてのコントロールのキャッシュされた値を無効にします。 COMアドインでコールバックプロシージャを使用すると、リボンUIをカスタマイズできます。アドインが実装する各コールバックに対して、応答はキャッシュされます。たとえば、アドインライターがボタンのコールバックプロシージャを実装する場合、関数は一度呼び出され、イメージがロードされ、イメージを更新する必要がある場合は、プロシージャを呼び出す代わりにキャッシュされたイメージが使用されます。アドインが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方法を見つけることができます。これは、リボンユーザーインターフェイス上の単一のコントロールのキャッシュされた値を無効にします。

記事の次直列にリボンUIについて詳しく読む:

+0

これは素晴らしい答えました。手伝ってくれてどうもありがとう! – Ben

関連する問題