您是否要向 RibbonMenu 或 RibbonGroup 添加按钮?在您的描述中,您说过要向菜单添加按钮,但您引用的示例是尝试向功能区组添加按钮[我假设group1是组而不是菜单!]。
您应该能够向 RibbonMenu 添加按钮,但如果您想要的是 RibbonGroup,那么您就不走运了。
这是 RibbonGroup 中 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 的原因。
Designer 在创建功能区时需要能够修改 RibbonGroup 中的项目,但是一旦加载,您就无法对其进行任何修改。
注意:如果您想在运行中向 RibbonMenu 添加按钮,请在 RibbonMenu 项目属性窗口中将Dynamic设置为 True(或者您可以将其放入 Designer 代码中),否则您将再次遇到相同的异常。