J'ai utilisé avec succès les modèles Excel et Word addin dans Visual Studio 2008 pour créer un projet qui s'ajoute au ruban, mais j'ai des difficultés avec les addins partagés. J'ai créé un add-in qui utilise un fichier xml pour modifier et ajouter au ruban et je peux attraper les événements des boutons ajoutés, mais je ne peux pas pour la vie de moi comprendre comment cacher les boutons ou ajouter des contrôles une fois qu'il est opérationnel. Fondamentalement, j'ai besoin d'une sorte de référence à un ruban et tout ce que je peux obtenir est une référence à un objet qui implémente IRibbonUi qui n'aide pas. Quelqu'un a-t-il de bons exemples ou conseils complémentaires?VSTO - Addin partagé pour Word et Excel pour modifier le ruban
Répondre
Il existe deux façons de contrôler la visibilité de vos contrôles de ruban. Vous pouvez utiliser la propriété visible ou l'événement getVisible. Les deux approches nécessitent de modifier le fichier XML que vous utilisez déjà.
Si ceci est votre fichier xml partielle maintenant:
<button id="MyButton" label="Hello" onAction="MyButtonOnAction"/>
Ensuite, vous pouvez masquer le contrôle en changeant à:
<button id="MyButton" label="Hello" onAction="MyButtonOnAction" visible="false"/>
Ce n'est pas très comme il est codé en dur. Pour se rapprocher de ce que vous cherchez un changement xml à:
<button id="MyButton" label="Hello" onAction="MyButtonOnAction" getVisible="MyButtonGetVisible"/>
Et de la même manière que vous avez fait le rappel de MyButtonOnAction vous créez le rappel MyButtonGetVisible qui arrive à avoir cette signature (C#):
bool MyButtonGetVisible(IRibbonControl control)
Avec cette méthode, vous pouvez alors renvoyer true ou false selon que vous souhaitez afficher/masquer le bouton. La prochaine question que vous pourriez avoir est, le rappel MyButtonGetVisible est seulement jamais appelé une fois juste après que mon complément est chargé. Je veux montrer/cacher le bouton plus tard, comment puis-je déclencher le rappel? Pour ce faire, vous pouvez utiliser cet objet IRibbonUI et appeler la fonction Invalidate qui provoquera l'invalidation de tout le ruban, ce qui provoquera l'appel du rappel. Si vous avez besoin d'un contrôle plus fin, vous pouvez appeler la fonction InvalidateControl qui prend le ControlID en paramètre et invalidera seulement un contrôle, ce qui provoquera l'appel du callback. En ce qui concerne l'ajout de contrôles à la volée, je ne crois pas que cela soit possible.
- 1. AddIn VSTO pour Word uniquement
- 2. VSTO pour Word et Autotext
- 3. VSTO: Modification des onglets existants du ruban Word
- 4. Ajouter des contrôles de ruban Excel à l'exécution (VSTO 2005SE)
- 5. VSTO 3.0 Obtenir/modifier une connexion de classeur Excel 2007
- 6. VSTO PowerPoint/Excel interaction
- 7. Comment fonctionne Excel VSTO?
- 8. Méthodes dans EXCEL Addin - XLL
- 9. VSTO ajouter élément de menu pour Excel 2003 avec C#
- 10. Environnement de développement Excel addin
- 11. création Réunion Addin pour Outlook avec C#
- 12. UDF avec VSTO dans Excel
- 13. Tableaux dans Excel avec VSTO
- 14. Ordre des onglets VSTO Excel
- 15. Excel & Word DevExpress
- 16. Word VSTO avale des exceptions lors de l'exécution sans débogage?
- 17. Sharepoint Listes vers le fichier Word/Excel
- 18. Ecriture d'un guide utilisateur Excel Addin
- 19. Excel AddIn lançant une exception dans le code du concepteur
- 20. Ouvrir des fichiers dans Word via le code-derrière du ruban
- 21. C# excel 2007 print preview ruban
- 22. Instances de ruban par document
- 23. VSTO find ContentControls d'un document Word
- 24. Création de tables pour la copie de Word vers Excel
- 25. Puis-je créer une transaction d'annulation dans Word ou Excel? (VSTO)
- 26. Création d'un calendrier contextuel dans un projet Excel VSTO
- 27. VSTO C# expose les événements de ruban à d'autres composants de niveau document
- 28. Puis-je ajouter AddIn à MS Word qui était allumé sur un autre AddIn?
- 29. Office Addin Aide à l'installation!
- 30. VSTO écrit dans une cellule dans Excel!
Merci, ce rappel GetVisible combinée à l'appel InvalidateControl était exactement ce que nous avons fini par faire. La seule souffrance à la fin est que lorsque nous surpassons le bouton de fichier ouvert, le raccourci ctrl-o appelle notre code en mots, mais pas dans Excel. Le mieux que nous puissions trouver est que l'équipe Excel n'a pas implémenté cela. – Codezy