Пример. Создание формы MDI путем слияния меню и с применением и элементов управления ToolStrip

Пространство имен System.Windows.Forms поддерживает приложения с интерфейсом MDI, а элемент управления MenuStrip поддерживает слияние меню. Формы MDI также могут содержать элементы управления ToolStrip.

В этом практическом руководстве показано использование элементов управления ToolStripPanel с формой MDI. Форма также поддерживает слияние меню с вложенными меню. В данном пошаговом руководстве рассмотрены следующие задачи.

  • Создание проекта Windows Forms.

  • Создание главного меню для формы. Фактическое имя меню может отличаться.

  • Добавление элемента управления ToolStripPanel на панель элементов.

  • Создание дочерней формы.

  • Упорядочение элементов управления ToolStripPanel по Z-порядку.

В результате в получите форму MDI, которая поддерживает объединение меню и перемещаемые элементы управления ToolStrip.

Сведения о том, как скопировать код в этой теме как отдельный список, см. в разделе Практическое руководство. Создание формы MDI с помощью объединения меню и элементов управления ToolStrip.

Необходимые компоненты

Для выполнения действий, описанных в этом пошаговом руководстве, вам понадобится Visual Studio.

Создание проекта

  1. В Visual Studio создайте проект приложения на основе Windows под названием MdiForm (Файл>Создать>Проект>Visual C# или Visual Basic>Классическое>Приложение Windows Forms).

  2. Выберите форму в конструкторе Windows Forms.

  3. В окне «Свойства» присвойте свойству IsMdiContainer значение true.

Создание основного меню

Родительская форма MDI содержит главное меню. В главном меню есть один пункт с именем Окно. С помощью пункта меню Окно можно создавать дочерние формы. Элементы меню из дочерних форм объединяются в главное меню.

  1. Перетащите элемент управления MenuStrip из панели элементов в форму.

  2. Добавьте ToolStripMenuItem в элемент управления MenuStrip и назовите его Окно.

  3. Выберите элемент управления MenuStrip.

  4. В окне «Свойства» присвойте свойству MdiWindowListItem значение ToolStripMenuItem1.

  5. Добавьте вложенный элемент в пункт меню Окно, а затем назовите его Создать.

  6. В окно свойств щелкните "События".

  7. Дважды щелкните событие Click.

    Конструктор Windows Forms создает обработчик событий для события Click.

  8. Вставьте в обработчик событий следующий код.

    // This method creates a new ChildForm instance
    // and attaches it to the MDI parent form.
    private void newToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ChildForm f = new ChildForm();
        f.MdiParent = this;
        f.Text = "Form - " + this.MdiChildren.Length.ToString();
        f.Show();
    }
    
    ' This method creates a new ChildForm instance 
    ' and attaches it to the MDI parent form.
     Private Sub newToolStripMenuItem_Click( _
     ByVal sender As Object, _
     ByVal e As EventArgs) _
     Handles newToolStripMenuItem.Click
    
         Dim f As New ChildForm()
         f.MdiParent = Me
         f.Text = "Form - " + Me.MdiChildren.Length.ToString()
         f.Show()
    
     End Sub
    

Добавление элемента управления ToolStripPanel на панель элементов

При использовании элементов управления MenuStrip с формой MDI необходимо иметь элемент управления ToolStripPanel. Чтобы создать форму MDI в конструкторе Windows Forms, необходимо добавить элемент управления ToolStripPanel на панель элементов.

  1. Откройте панель элементов и перейдите на вкладку Все формы Windows Forms, чтобы показать доступные элементы управления Windows Forms.

  2. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, а затем выберите Выбрать элементы.

  3. В диалоговом окне Выбор элементов панели элементов прокрутите вниз столбец Имя, пока не найдете ToolStripPanel.

  4. Установите флажок ToolStripPanel и нажмите ОК.

    Элемент управления ToolStripPanel появится на панели элементов.

Создание дочерней формы

В ходе этой процедуры вы определите отдельный класс дочерней формы, имеющий собственный элемент управления MenuStrip. Элементы меню для этой формы объединяются с элементами родительской формы.

  1. Добавьте в проект новый класс с именем ChildForm.

    Дополнительные сведения см. в разделе Практическое руководство. Добавление форм Windows Forms в проект.

  2. Перетащите элемент управления MenuStrip из панели элементов в дочернюю форму.

  3. MenuStrip Щелкните глиф действий конструктора элемента управления (Small black arrow), а затем выберите пункт "Изменить элементы".

  4. В диалоговом окне Редактор коллекции элементов добавьте новый ToolStripMenuItem с именем ChildMenuItem в дочернее меню.

    Дополнительные сведения см. в разделе Редактор коллекции элементов ToolStrip.

Проверка формы

  1. Нажмите клавишу F5, чтобы скомпилировать и запустить форму.

  2. Щелкните пункт меню Window, чтобы открыть меню, а затем нажмите кнопку Создать.

    Новая дочерняя форма создается в клиентской области MDI формы. Меню дочерней формы объединяется с основным меню.

  3. Закройте дочернюю форму.

    Меню дочерней формы удаляется из главного меню.

  4. Нажмите кнопку Создать несколько раз.

    Дочерние формы автоматически перечислены в пункте меню Окно, так как назначено свойство MenuStrip элемента управления MdiWindowListItem.

Добавление поддержки ToolStrip

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

  1. Перетащите элемент управления ToolStripPanel из панели элементов в форму.

  2. Выберите элемент управления ToolStripPanel и дважды щелкните элемент управления ToolStrip на панели элементов.

    Элемент управления ToolStrip создается в элементе управления ToolStripPanel.

  3. Выберите элемент управления ToolStripPanel.

  4. В окне «Свойства» замените значение свойства Dock элемента управления на Left.

    Элемент управления ToolStripPanel закрепляется на левой стороне формы под главным меню. Размер клиентской области MDI изменяется в соответствии с элементом управления ToolStripPanel.

  5. Повторите шаги с 1 по 4.

    Закрепите новый элемент управления ToolStripPanel в верхней части формы.

    Элемент управления ToolStripPanel закреплен под главным меню, но справа от первого элемента управления ToolStripPanel. Этот шаг иллюстрирует важность Z-порядка при выборе корректного положения элементов управления ToolStripPanel.

  6. Повторите шаги 1–4 для двух дополнительных элементов управления ToolStripPanel.

    Закрепление новых элементов управления ToolStripPanel справа и внизу формы.

Упорядочивание элементов управления ToolStripPanel по Z-порядку

Положение закрепленного элемента управления ToolStripPanel в форме MDI определяется положением элемента управления в Z-порядке. Вы можете легко упорядочить Z-порядок элементов управления в окне структуры документа.

  1. В меню Вид укажите пункт Другие окна и выберите Структура документа.

    Упорядочение элементов управления ToolStripPanel из предыдущей процедуры не является стандартным. Это связано с тем, что Z-порядок не является верным. Используйте окно структуры документа, чтобы изменить Z-порядок элементов управления.

  2. В окне «Структура документа» выберите ToolStripPanel4.

  3. Нажимайте кнопку со стрелкой вниз, пока ToolStripPanel4 не окажется в нижней части списка.

    Элемент управления ToolStripPanel4 закреплен в нижней части формы под другими элементами управления.

  4. Выберите ToolStripPanel2.

  5. Нажмите кнопку со стрелкой вниз один раз, чтобы разместить элемент управления на третьей позиции в списке.

    Элемент управления ToolStripPanel2 закреплен в верхней части формы под главным меню и над другими элементами управления.

  6. Выберите различные элементы управления в окне Структура документа и переместите их на разные позиции в Z-порядке. Обратите внимание на влияние Z-порядка на размещение закрепленных элементов управления. Чтобы отменить изменения, используйте клавиши CTRL-Z или кнопку Отмена в меню Редактирование.

Контрольная точка — проверка формы

  1. Нажмите клавишу F5, чтобы скомпилировать и запустить форму.

  2. Щелкните ручку элемента управления ToolStrip и перетащите элемент управления в разные позиции формы.

    Можно перетащить элемент управления ToolStrip из одного элемента управления ToolStripPanel в другой.

Следующие шаги

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

См. также