Windows forms главное меню

Практическое руководство. Вставка элемента MenuStrip в раскрывающееся меню интерфейса MDI (Windows Forms) How to: Insert a MenuStrip into an MDI Drop-Down Menu (Windows Forms)

В некоторых приложениях вид дочернего окна многодокументного интерфейса (MDI) может отличаться от родительского окна MDI. In some applications, the kind of a multiple-document interface (MDI) child window can be different from the MDI parent window. Например, родительским окном MDI может быть электронная таблица, а дочерним окном MDI — диаграмма. For example, the MDI parent might be a spreadsheet, and the MDI child might be a chart. В этом случае может потребоваться дополнить содержимое меню родительского окна MDI содержимым меню дочерней MDI-формы, по мере того как активируются дочерние окна MDI различных типов. In that case, you want to update the contents of the MDI parent’s menu with the contents of the MDI child’s menu as MDI child windows of different kinds are activated.

В следующей процедуре IsMdiContainer AllowMerge свойства,, MergeAction и используются MergeIndex для вставки группы пунктов меню из дочернего меню MDI в раскрывающийся список родительского меню MDI. The following procedure uses the IsMdiContainer, AllowMerge, MergeAction, and MergeIndex properties to insert a group of menu items from the MDI child menu into the drop-down part of the MDI parent menu. При закрытии дочернего окна MDI элементы вставленного меню удаляются из родительского интерфейса MDI. Closing the MDI child window removes the inserted menu items from the MDI parent.

Вставка объекта MenuStrip в раскрывающееся меню MDI To insert a MenuStrip into an MDI drop-down menu

Создайте форму и присвойте ее свойству IsMdiContainer значение true . Create a form and set its IsMdiContainer property to true .

Добавьте MenuStrip на Form1 и присвойте свойству AllowMerge для элемента MenuStrip значение true . Add a MenuStrip to Form1 and set the AllowMerge property of the MenuStrip to true .

Добавьте пункт меню верхнего уровня в Form1 MenuStrip и присвойте его свойству Text значение &File . Add a top-level menu item to the Form1 MenuStrip and set its Text property to &File .

Добавьте в пункт меню три пункта подменю &File и задайте Text для них свойства &Open , &Import from и E&xit . Add three submenu items to the &File menu item and set their Text properties to &Open , &Import from , and E&xit .

Добавьте два пункта подменю в &Import from элемент подменю и задайте Text для них свойства &Word и &Excel . Add two submenu items to the &Import from submenu item and set their Text properties to &Word and &Excel .

Добавьте в проект форму, добавьте MenuStrip на форму и присвойте его свойству AllowMerge элемента Form2 MenuStrip значение true . Add a form to the project, add a MenuStrip to the form, and set the AllowMerge property of the Form2 MenuStrip to true .

Добавьте пункт меню верхнего уровня в Form2 MenuStrip и присвойте его свойству Text значение &File . Add a top-level menu item to the Form2 MenuStrip and set its Text property to &File .

Добавьте элементы подменю в &File меню Form2 в в следующем порядке: a ToolStripSeparator ,, &Save и Save and &Close другой ToolStripSeparator . Add submenu items to the &File menu of Form2 in the following order: a ToolStripSeparator, &Save , Save and &Close , and another ToolStripSeparator.

Читайте также:  Как посмотреть core dump linux

Задайте MergeAction Свойства и MergeIndex для Form2 пунктов меню, как показано в следующей таблице. Set the MergeAction and MergeIndex properties of the Form2 menu items as shown in the following table.

Пункт меню Form2 Form2 menu item Значение Мержеактион MergeAction value Значение Мержеиндекс MergeIndex value
Файл File матчонли MatchOnly -1 -1
Separator Separator Вставить Insert 2 2
Сохранить Save Вставить Insert 3 3
Сохранить и закрыть Save and Close Вставить Insert 4 4
Separator Separator Вставить Insert 5 5

Создайте обработчик событий для события Click элемента &Open ToolStripMenuItem. Create an event handler for the Click event of the &Open ToolStripMenuItem.

В обработчик событий вставьте код, аналогичный приведенному в следующем примере для создания и отображения новых экземпляров Form2 в качестве дочерних окон MDI Form1 . Within the event handler, insert code similar to the following code example to create and display new instances of Form2 as MDI children of Form1 .

Поместите код, аналогичный приведенному в следующем примере, в &Open ToolStripMenuItem, для регистрации обработчика событий. Place code similar to the following code example in the &Open ToolStripMenuItem to register the event handler.

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

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

два элемента управления Form с именами Form1 и Form2 ; Two Form controls named Form1 and Form2 .

элемент управления MenuStrip на Form1 с именем menuStrip1 и элемент управления MenuStrip на Form2 с именем menuStrip2 ; A MenuStrip control on Form1 named menuStrip1 , and a MenuStrip control on Form2 named menuStrip2 .

Menu Класс

Определение

Представляет базовые возможности всех меню. Represents the base functionality for all menus.

Этот класс недоступен в .NET Core 3.1 и более поздних версиях. This class is not available in .NET Core 3.1 and later versions. Вместо него следует использовать ToolStripDropDown и ToolStripDropDownMenu, которые заменяют и расширяют элемент управления Menu. Use ToolStripDropDown and ToolStripDropDownMenu instead, which replace and extend the Menu control.

Примеры

В следующем примере кода производный класс используется MenuItem для создания структуры меню для формы. The following code example uses the derived class, MenuItem, to create a menu structure for a form. В примере кода добавляется MenuItem для представления пункта меню верхнего уровня, добавляется к нему элемент подменю для выбора размера шрифта, а затем в этот пункт меню добавляются два элемента подменю, представляющие крупные и малые шрифты в приложении. The example code adds a MenuItem to represent the top-level menu item, adds a submenu item to it for selecting a font size, and then adds two submenu items to that menu item that represent large and small font choices in an application. В этом примере требуется наличие MainMenu объекта с именем mainMenu1 и четырех MenuItem объектов с именами menuItem1 , menuItem2 , menuItem3 и menuItem4 . The example requires that there is a MainMenu object named mainMenu1 and four MenuItem objects named menuItem1 , menuItem2 , menuItem3 , and menuItem4 .

Комментарии

Этот класс недоступен в .NET Core 3.1 и более поздних версиях. This class is not available in .NET Core 3.1 and later versions. Взамен используйте и . Use and instead.

Этот класс является базовым классом для MainMenu MenuItem классов, и ContextMenu . This class is the base class for the MainMenu, MenuItem, and ContextMenu classes. Нельзя создать экземпляр этого класса. You cannot create an instance of this class. Меню приложения состоит из MenuItem объектов. The menus for an application consist of MenuItem objects. Они могут содержать другие MenuItem объекты, представляющие элементы подменю. These can contain other MenuItem objects, representing submenu items. MenuItemОбъекты могут храниться в MainMenu для вывода в виде всей структуры меню формы или ContextMenu , которая используется для вывода контекстных меню. The MenuItem objects can be stored in a MainMenu for display as an entire menu structure for a form or a ContextMenu that is used to display shortcut menus. Этот класс предоставляет функциональные возможности, общие для всех классов меню. This class provides functionality that is common for all the menu classes.

В отличие от многих базовых классов, Menu класс использует производные классы для определения многих его свойств. Unlike many base classes, the Menu class uses its derived classes to define many of its properties. Если вы используете меню в приложении многодокументного интерфейса (MDI), можно использовать MdiListItem свойство, чтобы указать MenuItem , который отображает список открытых дочерних форм MDI в приложении. If you are using your menu in a multiple-document interface (MDI) application, you can use the MdiListItem property to specify a MenuItem that displays a list of open MDI child forms in your application. MenuItemsСвойство содержит список MenuItem объектов, хранящихся в классе меню. The MenuItems property contains a list of MenuItem objects stored in the menu class. Для MainMenu или ContextMenu это свойство содержит все MenuItem отображаемые объекты. For a MainMenu or ContextMenu, this property contains all the MenuItem objects that are displayed. Для MenuItem MenuItems свойство представляет связанные с ним элементы вложенного меню. For a MenuItem, the MenuItems property represents the submenu items associated with it.

Помимо свойств, предоставляемых для всех производных классов меню, Menu класс также предоставляет методы, такие как CloneMenu и MergeMenu , которые позволяют создавать новые меню из существующих меню, а также объединять две структуры меню. In addition to the properties that are provided for all the derived menu classes, the Menu class also provides methods, such as CloneMenu and MergeMenu, that enable you to create new menus from existing menus, and also merge two menu structures together.

MenuКласс также определяет вложенный класс Menu.MenuItemCollection . The Menu class also defines the nested class Menu.MenuItemCollection. Этот класс определяет коллекцию объектов, MenuItem используемых MenuItems свойством. This class defines the collection of MenuItem objects used by the MenuItems property. Методы класса можно использовать Menu.MenuItemCollection для добавления и удаления пунктов меню из MainMenu , ContextMenu или MenuItem . You can use the methods of the Menu.MenuItemCollection class to add and remove menu items from a MainMenu, ContextMenu, or MenuItem.

Конструкторы

Инициализирует новый экземпляр класса Menu. Initializes a new instance of the Menu class.

Указывает, что метод FindMenuItem(Int32, IntPtr) должен выполнять поиск дескриптора. Specifies that the FindMenuItem(Int32, IntPtr) method should search for a handle.

Указывает, что метод FindMenuItem(Int32, IntPtr) должен выполнять поиск ярлыка. Specifies that the FindMenuItem(Int32, IntPtr) method should search for a shortcut.

Свойства

Возвращает значение, показывающее, может ли компонент вызывать событие. Gets a value indicating whether the component can raise an event.

(Унаследовано от Component) Container

Возвращает объект IContainer, который содержит коллекцию Component. Gets the IContainer that contains the Component.

(Унаследовано от Component) DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время. Gets a value that indicates whether the Component is currently in design mode.

(Унаследовано от Component) Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component. Gets the list of event handlers that are attached to this Component.

(Унаследовано от Component) Handle

Получает значение, представляющее дескриптор окна для меню. Gets a value representing the window handle for the menu.

Получает значение, показывающее, содержит ли это меню какие-нибудь элементы меню. Gets a value indicating whether this menu contains any menu items. Это свойство доступно только для чтения. This property is read-only.

Получает значение, указывающее объект MenuItem, используемый для отображения списка дочерних форм многодокументного интерфейса (MDI). Gets a value indicating the MenuItem that is used to display a list of multiple document interface (MDI) child forms.

Получает значение, показывающее коллекцию объектов MenuItem, связанных с данным меню. Gets a value indicating the collection of MenuItem objects associated with the menu.

Возвращает или задает имя таблицы для объекта Menu. Gets or sets the name of the Menu.

Получает или задает ISite объекта Component. Gets or sets the ISite of the Component.

(Унаследовано от Component) Tag

Получает или задает определяемые пользователем данные, связанные с элементом управления. Gets or sets user-defined data associated with the control.

Методы

Копирует объект Menu, передаваемый в качестве параметра в текущий объект Menu. Copies the Menu that is passed as a parameter to the current Menu.

Создает новый дескриптор для объекта Menu. Creates a new handle to the Menu.

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Унаследовано от MarshalByRefObject) Dispose()

Освобождает все ресурсы, занятые модулем Component. Releases all resources used by the Component.

(Унаследовано от Component) Dispose(Boolean)

Уничтожает ресурсы (кроме памяти), используемые классом Menu. Disposes of the resources, other than memory, used by the Menu.

Определяет, равен ли указанный объект текущему объекту. Determines whether the specified object is equal to the current object.

(Унаследовано от Object) FindMenuItem(Int32, IntPtr)

Получает объект MenuItem, содержащий указываемое значение. Gets the MenuItem that contains the value specified.

Возвращает позицию меню, в которую должен быть вставлен элемент меню. Returns the position at which a menu item should be inserted into the menu.

Получает объект ContextMenu, содержащий это меню. Gets the ContextMenu that contains this menu.

Служит хэш-функцией по умолчанию. Serves as the default hash function.

(Унаследовано от Object) GetLifetimeService()

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject) GetMainMenu()

Получает объект MainMenu, содержащий это меню. Gets the MainMenu that contains this menu.

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container. Returns an object that represents a service provided by the Component or by its Container.

(Унаследовано от Component) GetType()

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Унаследовано от Object) InitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. Obtains a lifetime service object to control the lifetime policy for this instance.

(Унаследовано от MarshalByRefObject) MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Унаследовано от Object) MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject. Creates a shallow copy of the current MarshalByRefObject object.

(Унаследовано от MarshalByRefObject) MergeMenu(Menu)

Объединяет объекты MenuItem одного меню с текущим меню. Merges the MenuItem objects of one menu with the current menu.

Обрабатывает клавишу для команд. Processes a command key.

Возвращает объект String, который представляет элемент управления Menu. Returns a String that represents the Menu control.

События

Возникает при удалении компонента путем вызова метода Dispose(). Occurs when the component is disposed by a call to the Dispose() method.

Читайте также:  Регистрация dll windows server 2012
Оцените статью