2011-09-02 8 views
3

Pour la programmation Office Add-ins en utilisant C# 4.0, Microsoft propose deux façons différentes de créer et/ou de modifier l'interface ruban: vous pouvez utiliser le Ribbon Designer ou définir la mise en page du ruban dans Ribbon XML.Accès ruban Contrôles Programatically dans un ruban XML

Si vous créez un ruban à l'aide du concepteur de ruban, la classe générée dans le code derrière a la visibilité de tous les contrôles que vous avez placés sur le ruban. Donc, si je l'ai placé un RibbonDropDown appelé « dropdown1 », je pourrais utiliser le code suivant pour ajouter un élément à ce:

RibbonDropDownItem item = Factory.CreateRibbonDropDownItem(); 
item.Label = submatrix.Name; 
item.Tag = submatrix; 
this.dropDown1.Items.Add(item); 

Cependant, si vous créez le même ruban en utilisant XML du ruban, dropDown1 ou usine aren » t found ("Le nom n'existe pas dans le contexte actuel").

Existe-t-il un moyen d'accéder aux éléments ajoutés à un ruban Ruban XML-defined dans le code?

+0

Avez-vous déjà trouvé une réponse à cette question? –

Répondre

4

Peut-être un peu en retard, mais j'espère que cela aidera quelqu'un.

J'étais tout à fait confus au sujet de ce même problème. Il s'avère que vous ne pouvez accéder à ces contrôles que sous la forme d'identifiants de chaîne et que le modèle est lourd sur les événements d'invalidation. Ainsi, par exemple, lorsque vous obtenez un bouton clic via la méthode onAction, il suffit id de l'expéditeur de l'objet de contrôle, cependant, dans ce gestionnaire d'événements, vous pouvez invalider les autres contrôles et leurs événements appelés à l'aide

ribbon.InvalidateControl("MyCtl"); 

consultez ce MS Lab, il a tout ce dont vous avez besoin pour démarrer

Questions connexes