Практическое руководство. Вставка элемента 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
.Добавьте пункт меню верхнего уровня в
Form1
MenuStrip и присвойте его свойству Text значение&File
.Добавьте три подменю к пункту меню
&File
и присвойте их свойствам Text значения&Open
,&Import from
иE&xit
.Добавьте два пункта подменю к пункту подменю
&Import from
и присвойте их свойствам Text значения&Word
и&Excel
.Добавьте в проект форму, добавьте MenuStrip на форму и присвойте его свойству AllowMerge элемента
Form2
MenuStrip значениеtrue
.Добавьте пункт меню верхнего уровня в
Form2
MenuStrip и присвойте его свойству Text значение&File
.Добавьте пункты подменю в меню
&File
Form2
в следующем порядке: a ToolStripSeparator,&Save
,Save and &Close
и еще один ToolStripSeparator.Задайте свойства MergeAction и MergeIndex пунктов меню
Form2
, как показано в следующей таблице.Пункт меню Form2 Значение MergeAction Значение MergeIndex Файл MatchOnly -1 Разделитель Insert 2 Сохранить Insert 3 Сохранить и закрыть Insert 4 Разделитель Insert 5 Создайте обработчик событий для события Click элемента
&Open
ToolStripMenuItem.В обработчик событий вставьте код, аналогичный приведенному в следующем примере для создания и отображения новых экземпляров
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 Sub
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(); }
Поместите код, аналогичный приведенному в следующем примере, в
&Open
ToolStripMenuItem, для регистрации обработчика событий.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.
См. также
.NET Desktop feedback