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


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

Обновлен: Ноябрь 2007

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

Topic Location
Диалоговое окно задач MenuStrip Программирование Windows Forms
Диалоговое окно задач ToolStrip Программирование Windows Forms
Диалоговое окно задач ContextMenuStrip Программирование Windows Forms
Диалоговое окно задач StatusStrip Программирование Windows Forms
Диалоговое окно задач ToolStripContainer Программирование Windows Forms
Диалоговое окно задач MenuStrip dv_ManCli
Диалоговое окно задач ToolStrip dv_ManCli
Диалоговое окно задач ContextMenuStrip dv_ManCli
Диалоговое окно задач StatusStrip dv_ManCli
Диалоговое окно задач ToolStripContainer dv_ManCli
Диалоговое окно задач MenuStrip dv_ManCli
Диалоговое окно задач ToolStrip dv_ManCli
Диалоговое окно задач ContextMenuStrip dv_ManCli
Диалоговое окно задач StatusStrip dv_ManCli
Диалоговое окно задач ToolStripContainer dv_ManCli

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

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

Topic Location
Редактор коллекции элементов MenuStrip Программирование Windows Forms
Редактор набора элементов StatusStrip Программирование Windows Forms
Редактор набора элементов ContextMenuStrip Программирование Windows Forms
Редактор набора элементов ToolStrip Программирование Windows Forms
Редактор коллекции элементов MenuStrip dv_ManCli
Редактор коллекции элементов StatusStrip dv_ManCli
Редактор коллекции элементов ContextMenuStrip dv_ManCli
Редактор набора элементов ToolStrip dv_ManCli
Редактор коллекции элементов MenuStrip dv_ManCli
Редактор коллекции элементов StatusStrip dv_ManCli
Редактор коллекции элементов ContextMenuStrip dv_ManCli
Редактор набора элементов ToolStrip dv_ManCli

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

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

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

Отрисовка

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

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

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

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

Стили и темы

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

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

Для расположения элементов управления ToolStrip можно использовать нависание, закрепление или определять абсолютное положение. Расположение элементов ToolStrip определяется свойством LayoutEngine контейнера.

Под нависанием понимается возможность совместного использования горизонтального или вертикального пространства в области панели инструментов. На форме Windows Form может быть размещен элемент управления 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.

См. также

Задачи

Пример ToolStrip

Пример ToolStrip Customizing

Пример Unified Commands

Основные понятия

Архитектура элемента управления ToolStrip

Ссылки

Общие сведения об элементе управления ToolStrip (Windows Forms)