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


Сводка по технологии 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 Design-Time

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

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

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

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

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

Элементы управления размещением

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

Пример размещения элементов управления см. в разделе "Как обернуть элемент управления 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. Вы можете использовать центральную ToolStripContentPanelToolStripContainer для размещения традиционных элементов управления на форме.

Все или все элементы управления ToolStripContainer доступны непосредственно для выбора во время разработки и могут быть удалены. ToolStripContainer можно развернуть и свернуть, а также изменять его размер в зависимости от содержащихся в нём элементов управления.

Докинг — это указание простого местоположения элемента управления на левой, правой, верхней или нижней стороне формы.

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

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

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

ToolStrip, MenuStripи StatusStrip позволяют элементам переполняться. Это аналогично тому, как эти элементы работают на панелях инструментов Microsoft Office.

См. также