Поделиться через


Практическое руководство. Удаление элемента ToolStripMenuItem из меню MDI-приложения (Windows Forms)

В некоторых приложениях вид дочернего окна интерфейса MDI может отличаться от родительского окна MDI. Например, если родительский интерфейс MDI — таблица, то дочерний интерфейс MDI может быть диаграммой. В этом случае может потребоваться обновление содержимого меню родительского интерфейса MDI содержимым меню дочернего интерфейса MDI при активировании различных видов дочерних окон интерфейса MDI.

В следующей процедуре свойства IsMdiContainer, AllowMerge, MergeAction и MergeIndex используются для удаления пункта меню из раскрывающейся части родительского меню MDI. При закрытии дочернего окна MDI происходит восстановление удаленных пунктов меню в родительском меню MDI.

Чтобы удалить объект MenuStrip из раскрывающегося меню MDI, выполните следующие действия:

  1. Создайте форму и присвойте ее свойству IsMdiContainer значение true.

  2. Добавьте MenuStrip в Form1 и присвойте свойству AllowMerge компонента MenuStrip значение true.

  3. Добавьте пункт меню верхнего уровня в Form1 MenuStrip и присвойте его свойству Text значение &File.

  4. Добавьте три пункта подменю в пункт меню &File и присвойте их свойствам Text значения &Open, &Import from и E&xit.

  5. Добавьте два пункта подменю в пункт подменю &Import from и присвойте их свойствам Text значения &Word и &Excel.

  6. Добавьте в проект форму, а в форму — MenuStrip. Присвойте свойству AllowMerge формы Form2 MenuStrip значение true.

  7. Добавьте пункт меню верхнего уровня в Form2 MenuStrip и присвойте его свойству Text значение &File.

  8. Добавьте пункт подменю &Import from в меню &File формы Form2 и добавьте пункт подменю &Word в меню &File.

  9. Задайте свойства MergeAction и MergeIndex пунктов меню Form2 в соответствии со следующей таблицей.

    Пункт меню Form2

    Значение MergeAction

    Значение MergeIndex

    Файл

    MatchOnly

    -1

    Import from

    MatchOnly

    -1

    Word

    Remove

    -1

  10. В форме Form1 создайте обработчик событий для события Click элемента &Open ToolStripMenuItem.

  11. В обработчик событий вставьте код, аналогичный следующему примеру кода, для создания и отображения новых экземпляров формы Form2 как дочерних форм MDI формы Form1.

    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
    

    [C#]

    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();
    }
    
  12. Добавьте в &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 (Windows Forms)