2017-05-07 1 views
0

J'essaie de modifier la propriété KeyTip de l'objet RibbonTab que j'ai créé. Quand je lance mon addin dans Excel, il montre que le KeyTip est "X" et non "JJJ".Comment modifier la propriété KeyTip d'un ruban VSTO AddIn?

Si je le change dans la fenêtre Propriétés à "JJJ" cela fonctionne bien mais je veux comprendre pourquoi je ne peux pas le changer de cette façon.

Que dois-je faire pour obtenir la propriété RibbonTab.KeyTip à charger en tant que "JJJ"?

(Pour votre information, ceci est mon premier projet donc je suis encore à apprendre)

Merci,

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 

Répondre

1

L'interface utilisateur Fluent (aka interface utilisateur du ruban) est une chose statique de sa naissance. Vous pouvez configurer l'attribut keytip une seule fois au démarrage lorsque votre complément renvoie le balisage de l'interface utilisateur (généré par le concepteur du ruban ou simplement un balisage XML brut).

Vous pouvez également utiliser le rappel getKeyTip qui permet d'évaluer dynamiquement les raccourcis clavier. La méthode Invalidate de l'interface IRibbonUI invalide les valeurs mises en cache pour tous les contrôles de l'interface utilisateur du ruban. Vous pouvez personnaliser l'interface utilisateur du ruban à l'aide des procédures de rappel dans les compléments COM. Pour chacun des rappels que le complément implémente, les réponses sont mises en cache. Par exemple, si un rédacteur de complément implémente la procédure de rappel getImage pour un bouton, la fonction est appelée une fois, l'image est chargée et si l'image doit être mise à jour, l'image mise en cache est utilisée au lieu de rappeler la procédure. Ce processus reste en place jusqu'à ce que le complément signale que les valeurs mises en cache ne sont pas valides à l'aide de la méthode Invalidate. À ce moment, la procédure de rappel est à nouveau appelée et la réponse de retour est mise en cache. Le complément peut alors forcer une mise à jour immédiate de l'interface utilisateur en appelant la méthode Refresh. Par exemple:

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 

Vous trouverez également la méthode InvalidateControl de l'interface utile IRibbonUI. Il invalide la valeur mise en cache pour un seul contrôle sur l'interface utilisateur du ruban.

En savoir plus sur l'interface utilisateur du ruban dans la série d'articles suivants:

et

+0

Ce fut une excellente réponse. Je vous remercie beaucoup pour votre aide! – Ben