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


Практическое руководство: вставка панели меню в меню MDI Drop-Down (Windows Forms)

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

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

Чтобы вставить MenuStrip в раскрывающееся меню MDI

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

  2. Добавьте MenuStrip к Form1 и установите свойство AllowMerge объекта MenuStrip в true.

  3. Добавьте элемент меню верхнего уровня в Form1MenuStrip и задайте для свойства Text значение &File.

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

  5. Добавьте два вложенных элемента в элемент подменю &Import from и задайте их свойства Text для &Word и &Excel.

  6. Добавьте форму в проект, добавьте MenuStrip в форму и задайте свойству AllowMerge объекта Form2MenuStrip значение true.

  7. Добавьте элемент меню верхнего уровня в Form2MenuStrip и задайте для свойства Text значение &File.

  8. Добавьте элементы подменю в меню &FileForm2 в следующем порядке: ToolStripSeparator, &Save, Save and &Closeи еще одну ToolStripSeparator.

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

    Элемент меню Form2 Значение MergeAction Значение MergeIndex
    Файл MatchOnly -1
    Разделитель Вставить 2
    Сохранить Вставка 3
    Сохранение и закрытие Вставка 4
    Разделитель Вставка 5
  10. Создайте обработчик событий для события Click&OpenToolStripMenuItem.

  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  
    
    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. Поместите код, аналогичный следующему примеру кода в &OpenToolStripMenuItem для регистрации обработчика событий.

    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.

См. также