Технологии, положенные в основу работы элемента управления ToolStrip
Обновлен: Ноябрь 2007
В этом разделе содержится сводная информация об элементе управления ToolStrip и классах, поддерживающих его использование.
Элемент управления ToolStrip и связанные с ним классы представляют собой исчерпывающее решение для создания панелей инструментов, строк состояния и меню.
Пространства имен
Фон
С помощью элемента управления 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 |
|
Размещение |
|
Представление и отрисовка |
Возможности элемента управления 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 (Windows Forms)