Пример. Создание формы MDI путем слияния меню и с применением и элементов управления ToolStrip
Пространство имен System.Windows.Forms поддерживает приложения с интерфейсом MDI, а элемент управления MenuStrip поддерживает слияние меню. Формы MDI также могут содержать элементы управления ToolStrip.
В этом практическом руководстве показано использование элементов управления ToolStripPanel с формой MDI. Форма также поддерживает слияние меню с вложенными меню. В данном пошаговом руководстве рассмотрены следующие задачи.
Создание проекта Windows Forms.
Создание главного меню для формы. Фактическое имя меню может отличаться.
Добавление элемента управления ToolStripPanel на панель элементов.
Создание дочерней формы.
Упорядочение элементов управления ToolStripPanel по Z-порядку.
В результате в получите форму MDI, которая поддерживает объединение меню и перемещаемые элементы управления ToolStrip.
Сведения о том, как скопировать код в этой теме как отдельный список, см. в разделе Практическое руководство. Создание формы MDI с помощью объединения меню и элементов управления ToolStrip.
Необходимые компоненты
Для выполнения действий, описанных в этом пошаговом руководстве, вам понадобится Visual Studio.
Создание проекта
В Visual Studio создайте проект приложения на основе Windows под названием MdiForm (Файл>Создать>Проект>Visual C# или Visual Basic>Классическое>Приложение Windows Forms).
Выберите форму в конструкторе Windows Forms.
В окне «Свойства» присвойте свойству IsMdiContainer значение
true
.
Создание основного меню
Родительская форма MDI содержит главное меню. В главном меню есть один пункт с именем Окно. С помощью пункта меню Окно можно создавать дочерние формы. Элементы меню из дочерних форм объединяются в главное меню.
Перетащите элемент управления MenuStrip из панели элементов в форму.
Добавьте ToolStripMenuItem в элемент управления MenuStrip и назовите его Окно.
Выберите элемент управления MenuStrip.
В окне «Свойства» присвойте свойству MdiWindowListItem значение
ToolStripMenuItem1
.Добавьте вложенный элемент в пункт меню Окно, а затем назовите его Создать.
В окно свойств щелкните "События".
Дважды щелкните событие Click.
Конструктор Windows Forms создает обработчик событий для события Click.
Вставьте в обработчик событий следующий код.
// 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 на панель элементов.
Откройте панель элементов и перейдите на вкладку Все формы Windows Forms, чтобы показать доступные элементы управления Windows Forms.
Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, а затем выберите Выбрать элементы.
В диалоговом окне Выбор элементов панели элементов прокрутите вниз столбец Имя, пока не найдете ToolStripPanel.
Установите флажок ToolStripPanel и нажмите ОК.
Элемент управления ToolStripPanel появится на панели элементов.
Создание дочерней формы
В ходе этой процедуры вы определите отдельный класс дочерней формы, имеющий собственный элемент управления MenuStrip. Элементы меню для этой формы объединяются с элементами родительской формы.
Добавьте в проект новый класс с именем
ChildForm
.Дополнительные сведения см. в разделе Практическое руководство. Добавление форм Windows Forms в проект.
Перетащите элемент управления MenuStrip из панели элементов в дочернюю форму.
MenuStrip Щелкните глиф действий конструктора элемента управления (
), а затем выберите пункт "Изменить элементы".
В диалоговом окне Редактор коллекции элементов добавьте новый ToolStripMenuItem с именем ChildMenuItem в дочернее меню.
Дополнительные сведения см. в разделе Редактор коллекции элементов ToolStrip.
Проверка формы
Нажмите клавишу F5, чтобы скомпилировать и запустить форму.
Щелкните пункт меню Window, чтобы открыть меню, а затем нажмите кнопку Создать.
Новая дочерняя форма создается в клиентской области MDI формы. Меню дочерней формы объединяется с основным меню.
Закройте дочернюю форму.
Меню дочерней формы удаляется из главного меню.
Нажмите кнопку Создать несколько раз.
Дочерние формы автоматически перечислены в пункте меню Окно, так как назначено свойство MenuStrip элемента управления MdiWindowListItem.
Добавление поддержки ToolStrip
В ходе этой процедуры вы добавите четыре элемента управления ToolStrip в родительскую форму MDI. Каждый элемент управления ToolStrip добавляется внутри элемента управления ToolStripPanel, закрепленного на краю формы.
Перетащите элемент управления ToolStripPanel из панели элементов в форму.
Выберите элемент управления ToolStripPanel и дважды щелкните элемент управления ToolStrip на панели элементов.
Элемент управления ToolStrip создается в элементе управления ToolStripPanel.
Выберите элемент управления ToolStripPanel.
В окне «Свойства» замените значение свойства Dock элемента управления на Left.
Элемент управления ToolStripPanel закрепляется на левой стороне формы под главным меню. Размер клиентской области MDI изменяется в соответствии с элементом управления ToolStripPanel.
Повторите шаги с 1 по 4.
Закрепите новый элемент управления ToolStripPanel в верхней части формы.
Элемент управления ToolStripPanel закреплен под главным меню, но справа от первого элемента управления ToolStripPanel. Этот шаг иллюстрирует важность Z-порядка при выборе корректного положения элементов управления ToolStripPanel.
Повторите шаги 1–4 для двух дополнительных элементов управления ToolStripPanel.
Закрепление новых элементов управления ToolStripPanel справа и внизу формы.
Упорядочивание элементов управления ToolStripPanel по Z-порядку
Положение закрепленного элемента управления ToolStripPanel в форме MDI определяется положением элемента управления в Z-порядке. Вы можете легко упорядочить Z-порядок элементов управления в окне структуры документа.
В меню Вид укажите пункт Другие окна и выберите Структура документа.
Упорядочение элементов управления ToolStripPanel из предыдущей процедуры не является стандартным. Это связано с тем, что Z-порядок не является верным. Используйте окно структуры документа, чтобы изменить Z-порядок элементов управления.
В окне «Структура документа» выберите ToolStripPanel4.
Нажимайте кнопку со стрелкой вниз, пока ToolStripPanel4 не окажется в нижней части списка.
Элемент управления ToolStripPanel4 закреплен в нижней части формы под другими элементами управления.
Выберите ToolStripPanel2.
Нажмите кнопку со стрелкой вниз один раз, чтобы разместить элемент управления на третьей позиции в списке.
Элемент управления ToolStripPanel2 закреплен в верхней части формы под главным меню и над другими элементами управления.
Выберите различные элементы управления в окне Структура документа и переместите их на разные позиции в Z-порядке. Обратите внимание на влияние Z-порядка на размещение закрепленных элементов управления. Чтобы отменить изменения, используйте клавиши CTRL-Z или кнопку Отмена в меню Редактирование.
Контрольная точка — проверка формы
Нажмите клавишу F5, чтобы скомпилировать и запустить форму.
Щелкните ручку элемента управления ToolStrip и перетащите элемент управления в разные позиции формы.
Можно перетащить элемент управления ToolStrip из одного элемента управления ToolStripPanel в другой.
Следующие шаги
В этом пошаговом руководстве вы создали родительскую форму MDI с элементами управления ToolStrip и с объединением меню. Семейство элементов управления ToolStrip можно также использовать и для других целей, в том числе приведенных ниже.
Создание контекстных меню для элементов управления с помощью ContextMenuStrip. Дополнительные сведения см. в разделе Общие сведения о компоненте ContextMenu.
Создание формы с автоматически заполняемым стандартным меню. Дополнительные сведения см. в документе Пошаговое руководство. Создание пунктов стандартного меню для формы.
Придание элементам управления ToolStrip профессионального внешнего вида. Дополнительные сведения см. в разделе Практическое руководство. Настройка отрисовщика ToolStrip для приложения.
См. также
.NET Desktop feedback