Метод ToolStripManager.Merge () можно использовать для объединения ToolStrip MdiParent и Toolstrip дочерней формы. ToolStrip дочерней формы будет перемещен в ToolStrip MdiParent.
Метод ToolStripManager.RevertMerge () удалит ToolStrip дочерней формы, когда дочерняя форма закрыта.
Конечно, используйте реальные имена, которые вы назначили для MdiParent ToolStrip (здесь, MdiToolStrip
) и дочернюю форму FormStrip (здесь, с именем toolStrip1
), и адаптируйте имена форм к тому, что вы используете ,
Назначение различных имен дочерним элементам управления Forms ToolStrip.
Когда вы создаете дочерний экземпляр формы, добавьте его перед его отображением:
ChildForm1 child1 = new ChildForm1();
child1.MdiParent = this;
ToolStripManager.Merge(child1.toolStrip1, this.MdiToolStrip);
child1.FormClosed += (s, ev) => { ToolStripManager.RevertMerge(this.MdiToolStrip, child1.toolStrip1); };
child1.Show();
Если у вас есть MenuStrip в MdiParent и в ваших дочерних формах, ToolStripMenusItems будут объединены автоматически, но я предлагаю вам добавить это сразу после InitializeComponent()
в конструкторе MdiParent:
this.MainMenuStrip = MdiMenuStrip;
, где MdiMenuStrip
- это имя, назначенное для MenuStrip MdiParent.
Причина объясняется здесь:
Как избежать отказов экрана при добавлении нового дочернего окна MDI
Дополнительные показания (документы MSDN):
Как: настроить Automati c Объединение меню для приложений MDI
Объединение пунктов меню в элементе управления Windows Forms MenuStrip