Практическое руководство. Удаление элемента 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
.Добавьте пункт меню верхнего уровня для
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.