System windows forms menustrip

Содержание
  1. Общие сведения об элементе управления MenuStrip (Windows Forms) MenuStrip Control Overview (Windows Forms)
  2. Способы использования элемента управления MenuStrip Ways to Use the MenuStrip Control
  3. BestProg
  4. Пример создания меню в C#. Элемент управления menuStrip
  5. Содержание
  6. Условие задачи
  7. Выполнение
  8. Практическое руководство. Отображение переключателей в элементе управления MenuStrip (Windows Forms) How to: Display Option Buttons in a MenuStrip (Windows Forms)
  9. Реализация поведения при выборе переключателя To implement option-button selection behavior
  10. Изменение внешнего вида элементов переключателя To modify the appearance of the option-button items
  11. Отключение параметров в подменю, если родительский элемент не выбран To disable options on a submenu when the parent item is not selected
  12. Пример Example
  13. Компиляция кода Compiling the Code
  14. Слияние элементов меню в элементе управления MenuStrip в Windows Forms Merging Menu Items in the Windows Forms MenuStrip Control
  15. Общие понятия General Concepts
  16. Значения Мержеактион MergeAction Values
  17. Слияние вручную Manual Merging
  18. Автоматическое слияние Automatic Merging

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

Меню предоставляют пользователям функциональные возможности, сохраняя команды, сгруппированные по общей теме. Menus expose functionality to your users by holding commands that are grouped by a common theme.

Этот MenuStrip элемент управления появился в версии 2,0 .NET Framework. The MenuStrip control was introduced in version 2.0 of the .NET Framework. С помощью этого MenuStrip элемента управления можно легко создавать меню, аналогичные тем, которые находятся в Microsoft Office. With the MenuStrip control, you can easily create menus like those found in Microsoft Office.

MenuStripЭлемент управления поддерживает многодокументный интерфейс (MDI) и слияние меню, всплывающие подсказки и переполнение. The MenuStrip control supports the multiple-document interface (MDI) and menu merging, tool tips, and overflow. Вы можете повысить удобство использования и удобочитаемость меню, добавив ключи доступа, сочетания клавиш, флажки, изображения и разделители. You can enhance the usability and readability of your menus by adding access keys, shortcut keys, check marks, images, and separator bars.

MenuStripЭлемент управления заменяет и расширяет функциональные возможности MainMenu элемента управления, однако он MainMenu сохраняется для обеспечения обратной совместимости и использования в будущем при выборе. The MenuStrip control replaces and adds functionality to the MainMenu control; however, the MainMenu control is retained for backward compatibility and future use if you choose.

Способы использования элемента управления MenuStrip Ways to Use the MenuStrip Control

Используйте MenuStrip элемент управления для: Use the MenuStrip control to:

Создание легко настраиваемых, часто используемых меню, поддерживающих расширенные функции пользовательского интерфейса и макета, таких как упорядочение текста и изображений и выравнивание, операции перетаскивания, MDI, переполнение и альтернативные режимы доступа к командам меню. Create easily customized, commonly employed menus that support advanced user interface and layout features, such as text and image ordering and alignment, drag-and-drop operations, MDI, overflow, and alternate modes of accessing menu commands.

Поддержка типичного внешнего вида и поведения операционной системы. Support the typical appearance and behavior of the operating system.

Согласованность событий для всех контейнеров и содержащихся в них элементов аналогично обработке событий для других элементов управления. Handle events consistently for all containers and contained items, in the same way you handle events for other controls.

В следующей таблице приведены некоторые особо важные свойства MenuStrip и связанные классы. The following table shows some particularly important properties of MenuStrip and associated classes.

Свойство Property Описание Description
MdiWindowListItem Возвращает или задает объект ToolStripMenuItem , используемый для вывода списка дочерних MDI-форм. Gets or sets the ToolStripMenuItem that is used to display a list of MDI child forms.
ToolStripItem.MergeAction Возвращает или задает, как дочерние меню объединяются с родительскими меню в приложениях MDI. Gets or sets how child menus are merged with parent menus in MDI applications.
ToolStripItem.MergeIndex Возвращает или задает позицию объединенного элемента в меню в приложениях MDI. Gets or sets the position of a merged item within a menu in MDI applications.
Form.IsMdiContainer Возвращает или задает значение, указывающее, является ли форма контейнером для дочерних форм MDI. Gets or sets a value indicating whether the form is a container for MDI child forms.
ShowItemToolTips Возвращает или задает значение, указывающее, отображаются ли подсказки для MenuStrip . Gets or sets a value indicating whether tool tips are shown for the MenuStrip.
CanOverflow Возвращает или задает значение, которое указывает, поддерживает ли MenuStrip область переполнения. Gets or sets a value indicating whether the MenuStrip supports overflow functionality.
ShortcutKeys Получает или задает сочетания клавиш, связанные с элементом ToolStripMenuItem. Gets or sets the shortcut keys associated with the ToolStripMenuItem.
ShowShortcutKeys Получает или задает значение, определяющее, будет ли сочетание клавиш, связанное с данным элементом ToolStripMenuItem, отображаться рядом с элементом ToolStripMenuItem. Gets or sets a value indicating whether the shortcut keys that are associated with the ToolStripMenuItem are displayed next to the ToolStripMenuItem.

В следующей таблице показаны важные MenuStrip сопутствующие классы. The following table shows the important MenuStrip companion classes.

BestProg

Пример создания меню в C#. Элемент управления menuStrip

Содержание

Поиск на других ресурсах:

Условие задачи

Создать приложение типа Windows Forms Application . На форме приложения создать меню по образцу, как показано на рисунке 1.

Рис. 1. Меню, которое нужно создать

Выполнение

1. Запустить Microsoft Visual Studio. Создать проект по шаблону Windows Forms Application

Подробный пример создания проекта по шаблону Windows Forms Application описывается здесь .

Сохранить проект под произвольным именем.

2. Элемент управления MenuStrip

Для создания меню используется элемент управления MenuStrip . Он размещается на панели Toolbox во вкладке « Menus&Toolbars » (рис. 2).

Рис. 2. Элемент управления MenuStrip

После вынесения компонента на форму (с помощью мышки) форма приложения примет вид, как показано на рисунке 3. В нижней части окна проектирования формы размещается объект с именем menuStrip1 . С помощью этого имени можно иметь доступ к свойствам и методам меню.

Рис. 3. Форма приложения после размещения компонента MenuStrip

Если навести курсор мыши на элемент меню TypeHere , то появится кнопка вызова всплывающего меню. Если раскрыть всплывающее меню (клик мышкой), то откроется возможность выбора одного из трех видов элементов управления в меню (рис. 4):

  • MenuItem – стандартный элемент меню;
  • ComboBox – элемент меню типа «нисходящий список»;
  • TextBox – элемент меню типа «поле ввода».

В нашем случае выбираем первый вариант MenuItem .

Рис. 4. Типы элементов меню

Для создания подменю File достаточно набрать текст « File » (рис. 5). С помощью мышки и клавиатуры, можно добавлять элементы меню. Для удаления элемента меню, его предварительно нужно выделить мышкой и нажать клавишу Delete .

Рис. 5. Создание подменю File

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

Рис. 6. Форма приложения после создания меню

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

Практическое руководство. Отображение переключателей в элементе управления MenuStrip (Windows Forms) How to: Display Option Buttons in a MenuStrip (Windows Forms)

Переключатели, также называемые переключателями, аналогичны флажкам, за исключением того, что пользователи могут выбирать только один из них за раз. Option buttons, also known as radio buttons, are similar to check boxes except that users can select only one at a time. Хотя по умолчанию ToolStripMenuItem класс не обеспечивает поведение переключателя, класс предоставляет поведение флажка, которое можно настроить для реализации поведения переключателей для пунктов меню в MenuStrip элементе управления. Although by default the ToolStripMenuItem class does not provide option-button behavior, the class does provide check-box behavior that you can customize to implement option-button behavior for menu items in a MenuStrip control.

Если CheckOnClick свойство пункта меню имеет значение true , пользователи могут щелкнуть элемент, чтобы включить или отключить отображение галочки. When the CheckOnClick property of a menu item is true , users can click the item to toggle the display of a check mark. CheckedСвойство указывает текущее состояние элемента. The Checked property indicates the current state of the item. Чтобы реализовать базовое поведение переключателя, необходимо убедиться, что при выборе элемента Checked свойству для ранее выбранного элемента задается значение false . To implement basic option-button behavior, you must ensure that when an item is selected, you set the Checked property for the previously selected item to false .

В следующих процедурах описывается реализация этой и дополнительной функциональности в классе, который наследует ToolStripMenuItem класс. The following procedures describe how to implement this and additional functionality in a class that inherits the ToolStripMenuItem class. ToolStripRadioButtonMenuItem Класс переопределяет элементы, такие как OnCheckedChanged и, OnPaint для обеспечения поведения выбора и внешнего вида переключателей. The ToolStripRadioButtonMenuItem class overrides members such as OnCheckedChanged and OnPaint to provide the selection behavior and appearance of option buttons. Кроме того, этот класс переопределяет Enabled свойство таким образом, чтобы параметры в подменю были отключены, если не выбран родительский элемент. Additionally, this class overrides the Enabled property so that options on a submenu are disabled unless the parent item is selected.

Реализация поведения при выборе переключателя To implement option-button selection behavior

Инициализируйте CheckOnClick свойство, чтобы true включить выбор элементов. Initialize the CheckOnClick property to true to enable item selection.

Переопределите OnCheckedChanged метод, чтобы очистить выбор выбранного ранее элемента при выборе нового элемента. Override the OnCheckedChanged method to clear the selection of the previously selected item when a new item is selected.

Переопределите OnClick метод, чтобы убедиться, что щелчок элемента, который уже был выбран, не очистит выбор. Override the OnClick method to ensure that clicking an item that has already been selected will not clear the selection.

Изменение внешнего вида элементов переключателя To modify the appearance of the option-button items

Переопределите OnPaint метод, чтобы заменить флажок по умолчанию на переключатель с помощью RadioButtonRenderer класса. Override the OnPaint method to replace the default check-mark with an option button by using the RadioButtonRenderer class.

Переопределите OnMouseEnter OnMouseLeave методы,, OnMouseDown и OnMouseUp для отслеживания состояния мыши и убедитесь, что OnPaint метод рисует правильное состояние переключателя. Override the OnMouseEnter, OnMouseLeave, OnMouseDown, and OnMouseUp methods to track the state of the mouse and ensure that the OnPaint method paints the correct option-button state.

Отключение параметров в подменю, если родительский элемент не выбран To disable options on a submenu when the parent item is not selected

Переопределите Enabled свойство таким образом, чтобы элемент был отключен, если у него есть родительский элемент со CheckOnClick значением true и Checked значением false . Override the Enabled property so that the item is disabled when it has a parent item with both a CheckOnClick value of true and a Checked value of false .

Переопределите OnOwnerChanged метод, чтобы подписаться на CheckedChanged событие родительского элемента. Override the OnOwnerChanged method to subscribe to the CheckedChanged event of the parent item.

В обработчике события родительского элемента CheckedChanged делает недействительным элемент для обновления экрана с новым включенным состоянием. In the handler for the parent-item CheckedChanged event, invalidate the item to update the display with the new enabled state.

Пример Example

Следующий пример кода предоставляет полный ToolStripRadioButtonMenuItem класс, Form класс и Program класс для демонстрации поведения переключателя. The following code example provides the complete ToolStripRadioButtonMenuItem class, and a Form class and Program class to demonstrate the option-button behavior.

Компиляция кода Compiling the Code

Для этого примера требуются: This example requires:

Слияние элементов меню в элементе управления MenuStrip в Windows Forms Merging Menu Items in the Windows Forms MenuStrip Control

При наличии приложения с многодокументным интерфейсом (MDI) можно объединить пункты меню или целые меню из дочерней формы в меню родительской формы. If you have a multiple-document interface (MDI) application, you can merge menu items or whole menus from the child form into the menus of the parent form.

В этом разделе описаны основные понятия, связанные с слиянием пунктов меню в приложении MDI. This topic describes the basic concepts associated with merging menu items in an MDI application.

Общие понятия General Concepts

В процедуру слияния входят как цель, так и система управления версиями: Merging procedures involve both a target and a source control:

Целевым объектом является MenuStrip элемент управления основной или родительской формы MDI, в которую объединяются пункты меню. The target is the MenuStrip control on the main or MDI parent form into which you are merging menu items.

Источником является MenuStrip элемент управления в дочерней MDI-форме, содержащей пункты меню, которые необходимо объединить в целевое меню. The source is the MenuStrip control on the MDI child form that contains the menu items you want to merge into the target menu.

MdiWindowListItemСвойство определяет пункт меню, раскрывающийся список которого будет заполнен заголовками дочерних MDI-форм родительской формы MDI. The MdiWindowListItem property identifies the menu item whose drop-down list you will populate with the titles of the current MDI parent form’s MDI children. Например, вы обычно перечислите дочерние элементы MDI, которые в данный момент открыты в меню окно . For example, you typically list MDI children that are currently open on the Window menu.

IsMdiWindowListEntryСвойство определяет, какие пункты меню берутся из элемента MenuStrip в дочерней форме MDI. The IsMdiWindowListEntry property identifies which menu items come from a MenuStrip on an MDI child form.

Элементы меню можно объединять вручную или автоматически. You can merge menu items manually or automatically. Элементы меню объединяются одинаково для обоих методов, но слияние активируется по-разному, как описано в разделах «слияние вручную» и «Автоматическое слияние» Далее в этом разделе. The menu items merge in the same way for both methods, but the merge is activated differently, as discussed in the «Manual Merging» and «Automatic Merging» sections later in this topic. Как в ручном, так и в автоматическом слиянии каждое действие слияния влияет на следующее действие слияния. In both manual and automatic merging, each merge action affects the next merge action.

MenuStrip при слиянии пункты меню перемещаются из одного ToolStrip в другой, а не клонированы, как в случае с MainMenu . MenuStrip merging moves menu items from one ToolStrip to another rather than cloning them, as was the case with MainMenu.

Значения Мержеактион MergeAction Values

Действие слияния задается для пунктов меню в источнике MenuStrip с помощью MergeAction Свойства. You set the merge action on menu items in the source MenuStrip using the MergeAction property.

В следующей таблице описывается значение и типичное использование доступных действий слияния. The following table describes the meaning and typical use of the available merge actions.

Значение Мержеактион MergeAction Value Описание Description Типичные случаи использования Typical Use
Append Параметры Добавляет исходный элемент в конец коллекции целевого элемента. (Default) Adds the source item to the end of the target item’s collection. Добавление пунктов меню в конец меню при активации некоторой части программы. Adding menu items to the end of the menu when some part of the program is activated.
Insert Добавляет исходный элемент в коллекцию целевого элемента в расположении, указанном свойством, заданным MergeIndex для исходного элемента. Adds the source item to the target item’s collection, in the location specified by the MergeIndex property set on the source item. Добавление пунктов меню в середину или начало меню при активации некоторой части программы. Adding menu items to the middle or the beginning of the menu when some part of the program is activated.

Если значение MergeIndex одинаково для обоих пунктов меню, они добавляются в обратный порядок. If the value of MergeIndex is the same for both menu items, they are added in reverse order. Установите MergeIndex соответствующим образом, чтобы сохранить исходный порядок. Set MergeIndex appropriately to preserve the original order.

Replace Находит совпадение текста или использует значение, MergeIndex если текстовое совпадение не найдено, а затем заменяет соответствующий пункт целевого меню на пункт исходного меню. Finds a text match, or uses the MergeIndex value if no text match is found, and then replaces the matching target menu item with the source menu item. Замена целевого пункта меню исходным пунктом меню с тем же именем, которое отличается от другого. Replacing a target menu item with a source menu item of the same name that does something different.
MatchOnly Находит совпадение текста или использует значение, MergeIndex если текстовое совпадение не найдено, а затем добавляет все раскрывающиеся элементы из источника в целевой объект. Finds a text match, or uses the MergeIndex value if no text match is found, and then adds all the drop-down items from the source to the target. Создание структуры меню, которая вставляет или добавляет пункты меню в подменю или удаляет пункты меню из подменю. Building a menu structure that inserts or adds menu items into a submenu, or removes menu items from a submenu. Например, можно добавить элемент меню из дочерней MDI-формы в главное меню » MenuStrip Сохранить как «. For example, you can add a menu item from an MDI child to a main MenuStripSave As menu.

MatchOnly позволяет перемещаться по структуре меню без выполнения каких-либо действий. MatchOnly allows you to navigate through the menu structure without taking any action. Он предоставляет способ вычисления последующих элементов. It provides a way to evaluate the subsequent items.

Remove Находит совпадение текста или использует значение, MergeIndex если текстовое совпадение не найдено, а затем удаляет элемент из целевого объекта. Finds a text match, or uses the MergeIndex value if no text match is found, and then removes the item from the target. Удаление пункта меню из целевого объекта MenuStrip . Removing a menu item from the target MenuStrip.

Слияние вручную Manual Merging

Только MenuStrip элементы управления участвуют в автоматическом слиянии. Only MenuStrip controls participate in automatic merging. Чтобы объединить элементы других элементов управления, например ToolStrip и StatusStrip элементов управления, необходимо выполнить слияние вручную, вызвав Merge RevertMerge методы и в коде по мере необходимости. To combine the items of other controls, such as ToolStrip and StatusStrip controls, you must merge them manually, by calling the Merge and RevertMerge methods in your code as required.

Автоматическое слияние Automatic Merging

Вы можете использовать автоматическое слияние для приложений MDI, активируя исходную форму. You can use automatic merging for MDI applications by activating the source form. Чтобы использовать MenuStrip в приложении MDI, задайте MainMenuStrip для свойства целевой объект, MenuStrip чтобы действия слияния, выполняемые в источнике, MenuStrip отражались в целевом объекте MenuStrip . To use a MenuStrip in an MDI application, set the MainMenuStrip property to the target MenuStrip so that merging actions performed on the source MenuStrip are reflected in the target MenuStrip.

Вы можете активировать автоматическое слияние, активируя в MenuStrip источнике MDI. You can trigger automatic merging by activating the MenuStrip on the MDI source. После активации источник MenuStrip объединяется в целевой объект MDI. Upon activation, the source MenuStrip is merged into the MDI target. Когда новая форма становится активной, слияние возвращается в последнюю форму и активируется в новой форме. When a new form becomes active, the merge is reverted on the last form and triggered on the new form. Это поведение можно контролировать, задав свойство для MergeAction каждого из них ToolStripItem , и задав AllowMerge свойство для каждого из них MenuStrip . You can control this behavior by setting the MergeAction property as needed on each ToolStripItem, and by setting the AllowMerge property on each MenuStrip.

Читайте также:  Artcam pro для windows 10
Оцените статью