Как удалить ToolStripMenuItem из меню MDI Drop-Down (Windows Forms)
В некоторых приложениях тип дочернего окна многодокументного интерфейса (MDI) может отличаться от родительского окна MDI. Например, родительский элемент MDI может быть электронной таблицей, а дочерний элемент MDI может быть диаграммой. В этом случае необходимо обновить содержимое меню родительского элемента MDI с содержимым меню дочернего элемента MDI по мере активации дочерних окон MDI различных типов.
Следующая процедура использует свойства IsMdiContainer, AllowMerge, MergeActionи MergeIndex для удаления элемента меню из раскрывающейся части родительского меню 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
.Добавьте элемент подменю
&Import from
в меню&File
Form2
, а также элемент подменю&Word
в меню&File
.Задайте свойства MergeAction и MergeIndex элементов меню
Form2
, как показано в следующей таблице.Элемент меню Form2 Значение MergeAction Значение MergeIndex Файл MatchOnly -1 Импорт из MatchOnly -1 Слово Убирать -1 В
Form1
создайте обработчик событий для события 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.
См. также
- Практическое руководство. Создание родительских форм MDI
- Как создать дочерние формы MDI
- Обзор элемента управления MenuStrip
.NET Desktop feedback