Практическое руководство. Удаление элемента ToolStripMenuItem из раскрывающегося меню MDI (Windows Forms)
В некоторых приложениях вид дочернего окна многодокументного интерфейса (MDI) может отличаться от родительского окна MDI. Например, родительским окном MDI может быть электронная таблица, а дочерним окном MDI — диаграмма. В этом случае может потребоваться дополнить содержимое меню родительского окна MDI содержимым меню дочерней MDI-формы, по мере того как активируются дочерние окна MDI различных типов.
В следующей процедуре используется IsMdiContainer, AllowMerge, MergeAction, и MergeIndex свойств, чтобы удалить элемент меню из раскрывающегося списка части родительского меню MDI. Восстановление удаленных пунктов меню родительского меню MDI закрытии дочернего окна MDI.
Для удаления элемента управления из меню 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 Файл MatchOnly -1 Импорт из MatchOnly -1 Слово Удалить -1 В
Form1, создайте обработчик событий для Click событие&OpenToolStripMenuItem.В обработчик событий вставьте код, аналогичный приведенному в следующем примере кода для создания и отображения новых экземпляров
Form2качестве дочерних окон MDIForm1: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 Subprivate 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.Clickthis.openToolStripMenuItem.Click += new _ System.EventHandler(this.openToolStripMenuItem_Click);
Компиляция кода
Для этого примера требуются:
два элемента управления Form с именами
Form1иForm2;элемент управления MenuStrip на
Form1с именемmenuStrip1и элемент управления MenuStrip наForm2с именемmenuStrip2;ссылки на сборки System и System.Windows.Forms.