在 Word 加载项引发集合中动态添加功能区按钮是只读的
本文关键字:功能区 添加 按钮 只读 动态 加载项 Word 集合 | 更新日期: 2023-09-27 18:34:28
我对 Word 加载项相当陌生,并尝试添加功能区组。 对于每个功能区组,
我动态添加功能区菜单,然后将功能区按钮添加到组内的菜单。
我得到了糟糕的工作,它似乎是okie,但每当我访问任何收藏时
例如:第1组。Items.add(new RibbonButton(((;它让我说集合是只读的。
但是当我调试集合的IsReadOnly标志设置为False时,这清楚地表明集合不是只读的?
我错过了什么。
加载
功能区后,集合将变为只读。
若要动态修改功能区控件,需要在功能区构造函数中执行此操作。
见 http://msdn.microsoft.com/en-us/library/bb608623.aspx#SettingReadOnlyProperties
您是否正在尝试将按钮添加到功能区菜单或功能区组?在您的描述中,您说过要向菜单添加按钮,但是您引用的示例是尝试将按钮添加到功能区组[我假设group1是一个组而不是菜单!
您应该能够将按钮添加到功能区菜单,但如果它是您想要的功能区组,那么您就不走运了。
下面是功能区组中 Items 属性的代码注释:
// Summary: // Gets the controls in the group. // // Returns: // The collection of controls in the group. // // Exceptions: // System.InvalidOperationException: // You try to add, remove, or replace a Microsoft.Office.Tools.Ribbon.RibbonControl // after the Ribbon is loaded. IList<RibbonControl> Items { get; }
这就是您收到错误的原因,也是集合的 IsReadOnly 属性设置为 false 的原因。
设计器在创建功能区时需要能够修改功能区组中的项,但加载后无法对其进行任何修改。
注意: 如果要动态向功能区菜单添加按钮,请在功能区菜单项属性窗口中将"动态"设置为"True">(或者可以将其放在设计器代码中(,否则将再次遇到相同的异常。