Технологии, положенные в основу работы элемента управления ToolStrip

В этом разделе содержится сводная информация о системе управления ToolStrip и классах, поддерживающих ее использование.

Элемент управления ToolStrip и связанные с ним классы обеспечивают комплексное решение для создания панелей инструментов, строк состояния и меню.

Пространства имен

System.Windows.Forms

Общие сведения

Панели инструментов с расширенными возможностями, имеющие единообразный и профессиональный вид и поведение, можно создавать с помощью элемента управления ToolStrip и связанных с ним классов. Элемент управления ToolStrip и классы имеют следующие усовершенствования по сравнению с предыдущими элементами управления.

  • Более согласованная модель событий.

  • Более согласованное поведение во время разработки, есть списки задач и редакторы коллекций элементов.

  • Пользовательская отрисовка благодаря классам ToolStripManager и ToolStripRenderer.

  • Встроенное нависание (совместное использование горизонтального или вертикального пространства в области инструментов при прикреплении) благодаря классам ToolStripContainer и ToolStripPanel.

  • Изменение порядка следования элементов с помощью свойства AllowItemReorder во время разработки и во время выполнения.

  • Перенос элементов в меню области переполнения с помощью свойства CanOverflow.

  • Полностью настраиваемое расположение элемента управления благодаря классам ToolStripContainer, ToolStripPanel и ToolStripContentPanel.

  • Размещение ToolStrip с помощью стандартных или пользовательских элементов управления ToolStripControlHost.

  • Объединение элементов управления ToolStrip с помощью ToolStripPanel.

ToolStrip — это расширяемый базовый класс для MenuStrip, ContextMenuStrip и StatusStrip. Эти элементы управления являются контейнерами ToolStripItem, которые наследуют общие характеристики поведения и обработки событий, расширяя их таким образом, чтобы каждая реализация использовала ту функциональность, которая для нее подходит. Элементы управления, которые являются производными от ToolStripItem, перечислены в следующей таблице. Базовый класс ToolStrip обрабатывает отрисовку, пользовательский ввод и события перетаскивания этих элементов управления.

Элементы управления ToolStrip, MenuStrip, ContextMenuStrip и StatusStrip заменяют панель инструментов, меню, контекстное меню и элементы управления строки состояния предыдущих версий, в то же время те элементы управления сохраняются для обеспечения обратной совместимости.

Краткий обзор классов элемента управления ToolStrip

В следующей таблице показаны классы ToolStrip, сгруппированные по технологическим областям.

Технологическая область Класс
Контейнеры панели инструментов, меню и строки состояния ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu
Элементы ToolStrip ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton
Местонахождение ToolStripContainer

ToolStripContentPanel

ToolStripPanel
Представление и отрисовка ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode

Компоненты времени разработки элемента управления ToolStrip

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

Диалоговые окна задач

Если в конструкторе Visual Studio щелкнуть смарт-тег на элементе управления, откроется список задач, обеспечивающий удобный доступ ко многим часто используемым командам.

Редакторы коллекций элементов

В Visual Studio при нажатии кнопки списка задач Правка элементов или при щелчке правой кнопкой мыши элемента управления и выборе пункта Правка элементов в контекстном меню откроется редактор коллекции для элемента управления. Редакторы коллекций позволяют добавлять, удалять и изменять порядок следования элементов, которые содержит данный элемент управления. Можно также просмотреть и изменить свойства элемента управления и его элементов.

Размещение элементов управления

Класс ToolStripControlHost предоставляет встроенные оболочки для элементов управления ToolStripComboBox, ToolStripTextBox и ToolStripProgressBar. Также в ToolStripControlHost можно разместить любой другой существующий или COM-элемент управления.

Пример размещения элементов управления см. в разделе Практическое руководство. Заключение элемента управления Windows Forms в оболочку с помощью ToolStripControlHost.

Отрисовка

Классы ToolStrip реализуют механизм отрисовки, который существенно отличается от других элементов управления Windows Forms. Этот механизм позволяет с легкостью применять стили и темы.

Чтобы применить стиль к ToolStrip и всем содержащимся в нем элементам ToolStripItem, не нужно обрабатывать событие Paint для каждого элемента. Вместо этого можно задать для свойства RenderMode одно из значений ToolStripRenderMode, отличных от Custom. Кроме того, можно задать Renderer непосредственно для любого класса, наследуемого от класса ToolStripRenderer. При задании этого свойства автоматически устанавливается параметр RenderMode.

Тот же стиль можно применить к нескольким элементам ToolStrip в одном приложении, задав для RenderMode значение ManagerRenderMode и для свойства RenderMode или Renderer необходимое значение ToolStripManagerRenderMode или ToolStripRenderer соответственно.

Примеры отрисовки см. в разделе Практическое руководство. Создание и определение пользовательского средства визуализации для элемента управления ToolStrip в Windows Forms.

Стили и темы

ToolStrip и связанные с ним классы предоставляют простой способ поддержки визуальных стилей и настраиваемого внешнего вида, который не требует переопределения методов OnPaint для каждого элемента. Используйте DisplayStyle и свойства RenderMode и Renderer.

Нависание и закрепление

Для элементов управления ToolStrip можно использовать нависание, закрепление или абсолютное позиционирование. Элементы ToolStrip располагаются с помощью LayoutEngine контейнера.

Нависание представляет собой возможность совместного использования горизонтального или вертикального пространства панели инструментов. Форма Windows может иметь контейнер ToolStripContainer, который в свою очередь содержит панели на левой, правой, верхней и нижней сторонах формы для размещения и нависания элементов управления ToolStrip, MenuStrip и StatusStrip. Несколько элементов управления ToolStrip располагаются по вертикали, если поместить их в левый или правый контейнер ToolStripContainer. Они располагаются по горизонтали, если поместить их в верхний или нижний контейнер ToolStripContainer. Для размещения традиционных элементов управления в форме может использоваться центральная панель ToolStripContentPanel из контейнера ToolStripContainer.

Все элементы управления ToolStripContainer непосредственно доступны для выбора во время разработки и могут быть удалены. Контейнер ToolStripContainer может расширяться и сворачиваться и изменять размеры элементов управления, которые он содержит.

Под закреплением понимается расположение элемента управления на форме слева, справа, сверху или снизу.

Преимуществом нависания над закреплением является то, что элементы управления ToolStrip, MenuStrip и StatusStrip могут совместно использовать горизонтальное или вертикальное пространство с другими элементами управления.

Вместо использования нависания большинство элементов управления ToolStrip можно закрепить на форме, как и другие элементы управления. Можно также указать, что элемент управления ToolStrip свободно размещается на форме, удалив его из его контейнера ToolStripContainer и задав для его свойства Dock значение None, либо указать абсолютное положение, задав соответствующее свойство Location. См. Практическое руководство. Перемещение элемента ToolStrip из контейнера ToolStripContainer в форму.

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

Элементы управления ToolStrip, MenuStrip и StatusStrip поддерживают области переполнения, аналогичные панелям инструментов Microsoft Office.

См. также