Практическое руководство: вставка панели меню в меню MDI Drop-Down (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
в следующем порядке: ToolStripSeparator,&Save
,Save and &Close
и еще одну ToolStripSeparator.Задайте свойства MergeAction и MergeIndex элементов меню
Form2
, как показано в следующей таблице.Элемент меню Form2 Значение MergeAction Значение MergeIndex Файл MatchOnly -1 Разделитель Вставить 2 Сохранить Вставка 3 Сохранение и закрытие Вставка 4 Разделитель Вставка 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