Практическое руководство. Вставка элемента MenuStrip в раскрывающемся меню интерфейса MDI (Windows Forms)
В некоторых приложениях вид дочернего окна многодокументного интерфейса (MDI) может отличаться от родительского окна MDI. Например, родительским окном MDI может быть электронная таблица, а дочерним окном MDI — диаграмма. В этом случае может потребоваться дополнить содержимое меню родительского окна MDI содержимым меню дочерней MDI-формы, по мере того как активируются дочерние окна MDI различных типов.
В следующей процедуре используется IsMdiContainer, AllowMerge, MergeAction, и MergeIndex свойства, чтобы вставить группу пунктов меню из дочернего меню MDI в в раскрывающегося списка части родительского меню 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.Добавить подменю
&FileменюForm2в следующем порядке: ToolStripSeparator,&Save,Save and &Closeи другой ToolStripSeparator.Задайте MergeAction и MergeIndex свойства
Form2пункты меню, как показано в следующей таблице.Пункт меню Form2 Значение MergeAction Значение MergeIndex Файл MatchOnly -1 Separator Insert 2 Сохранение Insert 3 Сохранить и закрыть Insert 4 Separator Insert 5 Создайте обработчик событий для 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.