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


Как удалить ToolStripMenuItem из меню MDI Drop-Down (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. Добавьте элемент меню верхнего уровня в Form1MenuStrip и задайте для свойства Text значение &File.

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

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

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

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

  8. Добавьте элемент подменю &Import from в меню &FileForm2, а также элемент подменю &Word в меню &File.

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

    Элемент меню Form2 Значение MergeAction Значение MergeIndex
    Файл MatchOnly -1
    Импорт из MatchOnly -1
    Слово Убирать -1
  10. В Form1создайте обработчик событий для события 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.

См. также