Меню и панели инструментов
Панель инструментов ToolStrip
Элемент ToolStrip представляет панель инструментов. Каждый отдельный элемент на этой панели является объектом ToolStripItem .
Ключевые свойства компонента ToolStrip связаны с его позиционированием на форме:
Dock : прикрепляет панель инструментов к одной из сторон формы
LayoutStyle : задает ориентацию панели на форме (горизонтальная, вертикальная, табличная)
ShowItemToolTips : указывает, будут ли отображаться всплывающие подсказки для отдельных элементов панели инструментов
Stretch : позволяет растянуть панель по всей длине контейнера
В зависимости от значения свойства LayoutStyle панель инструментов может располагаться по горизонтали, или в табличном виде:
HorizontalStackWithOverflow : расположение по горизонтали с переполнением — если длина панели превышает длину контейнера, то новые элементы, выходящие за границы контейнера, не отображаются, то есть панель переполняется элементами
StackWithOverflow : элементы располагаются автоматически с переполнением
VerticalStackWithOverflow : элементы располагаются вертикально с переполнением
Flow : элементы располагаются автоматически, но без переполнения — если длина панели меньше длины контейнера, то выходящие за границы элементы переносятся, а панель инструментов растягивается, чтобы вместить все элементы
Table : элементы позиционируются в виде таблицы
Если LayoutStyle имеет значения HorizontalStackWithOverflow / VerticalStackWithOverflow , то с помощью свойства CanOverflow мы можем задать поведение при переполнении. Так, если это свойство равно true (значение по умолчанию), то для элементов, не попадающих в границы ToolStrip, создается выпадающий список:
При значении false подобный выпадающий список не создается.
Типы элементов панели и их добавление
Панель ToolStrip может содержать объекты следующих классов
ToolStripLabel : текстовая метка на панели инструментов, представляет функциональность элементов Label и LinkLabel
ToolStripButton : аналогичен элементу Button.Также имеет событие Click, с помощью которого можно обработать нажатие пользователя на кнопку
ToolStripSeparator : визуальный разделитель между другими элементами на панели инструментов
ToolStripToolStripComboBox : подобен стандартному элементу ComboBox
ToolStripTextBox : аналогичен текстовому полю TextBox
ToolStripProgressBar : индикатор прогресса, как и элемент ProgressBar
ToolStripDropDownButton : представляет кнопку, по нажатию на которую открывается выпадающее меню
К каждому элементу выпадающего меню дополнительно можно прикрепить обработчик нажатия и обработать клик по этим пунктам меню
ToolStripSplitButton : объединяет функциональность ToolStripDropDownButton и ToolStripButton
Добавить новые элементы можно в режиме дизайнера:
Также можно добавлять новые элементы программно в коде. Их расположение на панели инструментов будет соответствовать порядку добавления. Все элементы хранятся в ToolStrip в свойстве Items. Мы можем добавить в него любой объект класса ToolStripItem (то есть любой из выше перечисленных классов, так как они наследуются от ToolStripItem):
Кроме того, здесь задается обработчик, позволяющий обрабатывать нажатия по кнопки на панели инструментов.
Элементы ToolStripButton, ToolStripDropDownButton и ToolStripSplitButton могут отображать как текст, так и изобажения, оибо сразу и то, и другое. Для управления размещением изображений в этих элементах имеются следующие свойства:
DisplayStyle : определяет, будет ли отображаться на элементе текст, или изображение, или и то и другое.
Image : указывает на само изображение
ImageAlign : устанавливает выравнивание изображения относительно элемента
ImageScaling : указывает, будет ли изображение растягиваться, чтобы заполнить все пространство элемента
ImageTransparentColor : указывает, будет ли цвет изображения прозрачным
Чтобы указать разместить изображение на кнопке, у свойства DisplayStyle надо установить значение Image . Если мы хотим, чтобы кнопка отображала только текст, то надо указать значение Text , либо можно комбинировать два значения с помощью другого значения ImageAndText :
Все эти значения хранятся в перечислении ToolStripItemDisplayStyle . Также можно установить свойства в коде c#:
Windows forms панель инструментов
Для создания меню в Windows Forms применяется элемент MenuStrip . Данный класс унаследован от ToolStrip и поэтому наследует его функциональность.
Наиболее важные свойства компонента MenuStrip:
Dock : прикрепляет меню к одной из сторон формы
LayoutStyle : задает ориентацию панели меню на форме. Может также, как и с ToolStrip, принимать следующие значения
HorizontalStackWithOverflow : расположение по горизонтали с переполнением — если длина меню превышает длину контейнера, то новые элементы, выходящие за границы контейнера, не отображаются, то есть панель переполняется элементами
StackWithOverflow : элементы располагаются автоматически с переполнением
VerticalStackWithOverflow : элементы располагаются вертикально с переполнением
Flow : элементы размещаются автоматически, но без переполнения — если длина панели меню меньше длины контейнера, то выходящие за границы элементы переносятся
Table : элементы позиционируются в виде таблицы
ShowItemToolTips : указывает, будут ли отображаться всплывающие подсказки для отдельных элементов меню
Stretch : позволяет растянуть панель по всей длине контейнера
TextDirection : задает направление текста в пунктах меню
MenuStrip выступает своего рода контейнером для отдельных пунктов меню, которые представлены объектом ToolStripMenuItem .
Добавить новые элементы в меню можно в режиме дизайнера:
Для добавления доступно три вида элементов: MenuItem (объект ToolStripMenuItem), ComboBox и TextBox . Таким образом, в меню мы можем использовать выпадающие списки и текстовые поля, однако, как правило, эти элементы применяются в основном на панели инструментов. Меню же обычно содержит набор объектов ToolStripMenuItem.
Также мы можем добавить пункты меню в коде C#:
ToolStripMenuItem в конструкторе принимает текстовую метку, которая будет использоваться в качестве текста меню. Каждый подобный объект имеет коллекцию DropDownItems , которая хранит дочерние объекты ToolStripMenuItem. То есть один элемент ToolStripMenuItem может содержать набор других объектов ToolStripMenuItem. И таким образом, образуется иерархическое меню или структура в виде дерева.
Если передать при добавление строку текста, то для нее неявным образом будет создан объект ToolStripMenuItem: fileItem.DropDownItems.Add(«Создать»)
Назначив обработчики для события Click , мы можем обработать нажатия на пункты меню: aboutItem.Click += aboutItem_Click
Отметки пунктов меню
Свойство CheckOnClick при значении true позволяет на клику отметить пункт меню. А с помощью свойства Checked можно установить, будет ли пункт меню отмечен при запуске программы.
Еще одно свойство CheckState возвращает состояние пункта меню — отмечен он или нет. Оно может принимать три значения: Checked (отмечен), Unchecked (неотмечен) и Indeterminate (в неопределенном состоянии)
Например, создадим ряд отмеченных пунктов меню и обработаем событие установки / снятия отметки:
Клавиши быстрого доступа
Если нам надо быстро обратиться к какому-то пункту меню, то мы можем использовать клавиши быстрого доступа. Для задания клавиш быстрого доступа используется свойство ShortcutKeys :
Клавиши задаются с помощью перечисления Keys . В данном случае по нажатию на комбинацию клавиш Ctrl + P, будет срабатывать нажатие на пункт меню «Сохранить».
С помощью изображений мы можем разнообразить внешний вид пунктов меню. Для этого мы можем использовать следующие свойства:
DisplayStyle : определяет, будет ли отображаться на элементе текст, или изображение, или и то и другое.
Image : указывает на само изображение
ImageAlign : устанавливает выравнивание изображения относительно элемента
ImageScaling : указывает, будет ли изображение растягиваться, чтобы заполнить все пространство элемента
ImageTransparentColor : указывает, будет ли цвет изображения прозрачным
Если изображение для пункта меню устанавливает в режиме дизайнера, то нам надо выбрать в окне свойство пункт Image, после чего откроется окно для импорта ресурса изображения в проект
Чтобы указать, как разместить изображение, у свойства DisplayStyle надо установить значение Image . Если мы хотим, чтобы кнопка отображала только текст, то надо указать значение Text , либо можно комбинировать два значения с помощью другого значения ImageAndText . По умолчанию изображение размещается слева от текста:
Также можно установить изображение динамически в коде:
Практическое руководство. Настройка меню и панелей инструментов в Visual Studio How to: Customize menus and toolbars in Visual Studio
Visual Studio можно настраивать не только путем добавления и удаления панелей инструментов и меню в строке меню, но также путем добавления и удаления команд для любой панели инструментов или любого меню. You can customize Visual Studio not only by adding and removing toolbars and menus on the menu bar, but also by adding and removing commands on any given toolbar or menu.
Настроив панель инструментов или меню, убедитесь в том, что ее флажок установлен в диалоговом окне Настройка. After you customize a toolbar or menu, make sure that its check box remains selected in the Customize dialog box. В противном случае после закрытия и повторного открытия Visual Studio изменения будут утеряны. Otherwise, your changes won’t persist after you close and reopen Visual Studio.
Добавление, удаление или перемещение меню в строке меню Add, remove, or move a menu on the menu bar
В строке меню выберите Сервис > Настроить. On the menu bar, choose Tools > Customize.
Откроется диалоговое окно Настройка. The Customize dialog box opens.
На вкладке Команды установите переключатель Строка меню и флажок Строка меню в списке рядом с этим параметром, а затем выполните одно из следующих действий: On the Commands tab, leave the Menu bar option button selected, leave Menu Bar selected in the list next to that option, and then perform one of the following sets of steps:
Чтобы добавить меню, нажмите кнопку Добавить новое меню, нажмите кнопку Изменить выбор и введите имя меню, который требуется добавить. To add a menu, choose the Add New Menu button, choose the Modify Selection button, and then name the menu that you want to add.
Чтобы удалить меню, выберите его из списка Элементы управления и нажмите кнопку Удалить. To remove a menu, choose it in the Controls list, and then choose the Delete button.
Чтобы переместить меню в строке меню, его в списке Элементы управления, а затем нажмите кнопку Вверх или Вниз. To move a menu within the menu bar, choose the menu in the Controls list, and then choose the Move Up or Move Down button.
Добавление, удаление или перемещение панели инструментов Add, remove, or move a toolbar
В строке меню выберите Сервис > Настроить. On the menu bar, choose Tools > Customize.
Откроется диалоговое окно Настройка. The Customize dialog box opens.
На вкладке Панель инструментов выполните одно из следующих действий: On the Toolbar tab, perform one of the following sets of steps:
Чтобы добавить панель инструментов, нажмите кнопку Создать, укажите имя панели инструментов, которую требуется добавить, а затем нажмите кнопку ОК. To add a toolbar, choose the New button, specify a name for the toolbar that you want to add, and then choose the OK button.
Чтобы удалить пользовательскую панель инструментов, выберите ее из списка Панели инструментов и нажмите кнопку Удалить. To remove a custom toolbar, choose it in the Toolbars list, and then choose the Delete button.
Удалить можно панели инструментов, созданные пользователем, но не панели инструментов по умолчанию. You can delete toolbars that you create but not default toolbars.
Чтобы переместить панель инструментов в другое место закрепления, выберите ее в списке Панели инструментов, нажмите кнопку Изменить выбор, а затем выберите нужное расположение в отобразившемся списке. To move a toolbar to a different docking location, choose it in the Toolbars list, choose the Modify Selection button, and then choose a location in the list that appears.
Можно также перетащить панель инструментов за левый край, чтобы переместить ее в любую точку основной области закрепления. You can also drag a toolbar by its left edge to move it anywhere in the main docking area.
Дополнительные сведения о повышении практичности и доступности панелей инструментов см. в статье Практическое руководство. Настройка параметров специальных возможностей в интегрированной среде разработки. For more information about how to improve the usability and accessibility of toolbars, see How to: Set IDE accessibility options.
Настройка меню или панели инструментов Customize a menu or a toolbar
В строке меню выберите Сервис > Настроить. On the menu bar, choose Tools > Customize.
Откроется диалоговое окно Настройка. The Customize dialog box opens.
На вкладке Команды выберите переключатель для типа элемента, который необходимо настроить. On the Commands tab, choose the option button for the type of element that you want to customize.
В списке для данного типа элементов выберите меню или панель инструментов, которую требуется настроить, а затем выполните одно из нижеуказанных действий. In the list for that type of element, choose the menu or toolbar that you want to customize, and then perform one of the following sets of steps:
Чтобы добавить команду, нажмите кнопку Добавить команду. To add a command, choose the Add Command button.
В диалоговом окне Добавить команду выберите элемент в списке Категории, выберите элемент в списке Команды, а затем нажмите кнопку ОК. In the Add Command dialog box, choose an item in the Categories list, choose an item in the Commands list, and then choose the OK button.
Чтобы удалить команду, выберите ее из списка Элементы управления и нажмите кнопку Удалить. To delete a command, choose it in the Controls list, and then choose the Delete button.
Чтобы изменить порядок расположения команд в списке, выберите команду Элементы управления, а затем нажмите кнопку Вверх или Вниз. To reorder commands, choose a command in the Controls list, and then choose the Move Up or Move Down button.
Чтобы сгруппировать команды под горизонтальной линией, выберите первую команду в списке Элементы управления, нажмите кнопку Изменить выбор, а затем выберите в появившемся меню пункт Начать группу. To group commands under a horizontal line, choose the first command in the Controls list, choose the Modify Selection button, and then choose Begin a Group in the menu that appears.
Сброс настроек меню или панели инструментов Reset a menu or a toolbar
В строке меню выберите Сервис > Настроить. On the menu bar, choose Tools > Customize.
Откроется диалоговое окно Настройка. The Customize dialog box opens.
На вкладке Команды выберите переключатель для типа элемента, параметры которого необходимо сбросить. On the Commands tab, choose the option button for the type of element that you want to reset.
В списке для данного типа элементов выберите меню или панель инструментов, параметры которых требуется сбросить. In the list for that type of element, choose the menu or toolbar that you want to reset.
Нажмите кнопку Изменить выбор и выберите пункт Сброс в отобразившемся меню. Choose the Modify Selection button, and then choose Reset in the menu that appears.
Можно также сбросить параметры всех меню и панелей инструментов с помощью кнопки Сбросить все. You can also reset all menus and toolbars by choosing the Reset All button.