Практическое руководство. Удаление элемента ToolStripMenuItem из меню MDI-приложения (Windows Forms)
Обновлен: Ноябрь 2007
В некоторых приложениях вид дочернего окна интерфейса MDI может отличаться от родительского окна MDI. Например, если родительский интерфейс MDI — таблица, то дочерний интерфейс MDI может быть диаграммой. В этом случае может потребоваться обновление содержимого меню родительского интерфейса MDI содержимым меню дочернего интерфейса MDI при активировании различных видов дочерних окон интерфейса MDI.
В следующей процедуре свойства IsMdiContainer, AllowMerge, MergeAction и MergeIndex используются для удаления пункта меню из раскрывающейся части родительского меню MDI. При закрытии дочернего окна MDI происходит восстановление удаленных пунктов меню в родительском меню MDI.
Чтобы удалить объект MenuStrip из раскрывающегося меню MDI, выполните следующие действия:
Создайте форму и присвойте ее свойству IsMdiContainer значение true.
Добавьте MenuStrip в Form1 и присвойте свойству AllowMerge компонента MenuStrip значение true.
Добавьте пункт меню верхнего уровня в Form1MenuStrip и присвойте его свойству Text значение &File.
Добавьте три пункта подменю в пункт меню &File и присвойте их свойствам Text значения &Open, &Import from и E&xit.
Добавьте два пункта подменю в пункт подменю &Import from и присвойте их свойствам Text значения &Word и &Excel.
Добавьте в проект форму, а в форму — MenuStrip. Присвойте свойству AllowMerge формы Form2MenuStrip значение true.
Добавьте пункт меню верхнего уровня в Form2MenuStrip и присвойте его свойству Text значение &File.
Добавьте пункт подменю &Import from в меню &File формы Form2 и добавьте пункт подменю &Word в меню &File.
Задайте свойства MergeAction и MergeIndex пунктов меню Form2 в соответствии со следующей таблицей.
Пункт меню Form2
Значение MergeAction
Значение MergeIndex
File
MatchOnly
-1
Import from
MatchOnly
-1
Word
Remove
-1
В форме Form1 создайте обработчик событий для события Click элемента &OpenToolStripMenuItem.
В обработчик событий вставьте код, аналогичный следующему примеру кода, для создания и отображения новых экземпляров формы Form2 как дочерних форм MDI формы Form1.
Private Sub openToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openToolStripMenuItem.Click Dim NewMDIChild As New Form2() 'Set the parent form of the child window. NewMDIChild.MdiParent = Me 'Display the new form. NewMDIChild.Show() End Sub
[C#]
private void openToolStripMenuItem_Click(object sender, EventArgs e) { Form2 newMDIChild = new Form2(); // Set the parent form of the child window. newMDIChild.MdiParent = this; // Display the new form. newMDIChild.Show(); }
Добавьте в &OpenToolStripMenuItem код, аналогичный следующему примеру кода, для регистрации обработчика событий.
Private Sub openToolStripMenuItem_Click(sender As Object, e As _ EventArgs) Handles openToolStripMenuItem.Click
this.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Компиляция кода
Для этого примера требуются следующие компоненты:
Два элемента управления Form с именами Form1 и Form2.
Элемент управления MenuStrip в форме Form1 с именем menuStrip1, и элемент управления MenuStrip в форме Form2 с именем menuStrip2.
Ссылки на сборки System и System.Windows.Forms.
См. также
Задачи
Практическое руководство. Создание родительских MDI-форм
Практическое руководство. Создание дочерних MDI-форм
Ссылки
Общие сведения об элементе управления MenuStrip (Windows Forms)