在运行时将项添加到RibbonDropDown

Cod*_*ion 13 c# vsto visual-studio-2010 outlook-2007

所以我在功能区中有一个下拉菜单,其内容可以在使用时更改.只要我不添加超过1个项目,Outlook也很乐意让我"添加"或"插入"项目.

如果我尝试,我会被告知索引超出界限而不是扩大我的上限.

我发现如果我将它插入到代码的设计器部分的集合中,它将工作正常,但设计器代码只运行一次,除非我处理功能区并重新创建它.

关于如何让这个工作的任何想法

小智 45

试试这个.这应该适合你.

RibbonDropDownItem item 
      = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
item.Label = "First Name";
this.cbRecent.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)


小智 11

请尝试以下方法:

RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem();
item.Label = "Text";
combo.Items.Add(item);
Run Code Online (Sandbox Code Playgroud)

  • 答案似乎很好,但你可以提供一些描述吗?这将非常有用! (2认同)

Dar*_*inH -2

一般来说,VSTO 希望您在第一次被要求提供所需的 UI 元素时(通过 GetCustomUI)完整地描述它们。

我之前在使用 vsto 时遇到过类似的问题,我发现的唯一合理的解决方法是预先填充(通过设计器)您可能需要的所有元素(假设您的下拉列表中有 10 个项目)。

然后,以编程方式隐藏或显示这些项目,并在插件运行时根据需要更新其标题和其他属性。

这样,您就不必动态添加或删除任何内容。

  • 如果我没记错的话,这个答案完全是错误的。请参阅其他答案。 (5认同)