Export (0) Print
Expand All

Menu Class

Represents the base functionality for all menus. Although ToolStripDropDown and ToolStripDropDownMenu replace and add functionality to the Menu control of previous versions, Menu is retained for both backward compatibility and future use if you choose.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

'Declaration
<ListBindableAttribute(False)> _
Public MustInherit Class Menu _
	Inherits Component

The Menu type exposes the following members.

  NameDescription
Protected methodMenuInitializes a new instance of the Menu class.
Top

  NameDescription
Protected propertyCanRaiseEventsGets a value indicating whether the component can raise an event. (Inherited from Component.)
Public propertyContainerGets the IContainer that contains the Component. (Inherited from Component.)
Protected propertyDesignModeGets a value that indicates whether the Component is currently in design mode. (Inherited from Component.)
Protected propertyEventsGets the list of event handlers that are attached to this Component. (Inherited from Component.)
Public propertyHandleGets a value representing the window handle for the menu.
Public propertyIsParentGets a value indicating whether this menu contains any menu items. This property is read-only.
Public propertyMdiListItemGets a value indicating the MenuItem that is used to display a list of multiple document interface (MDI) child forms.
Public propertyMenuItemsGets a value indicating the collection of MenuItem objects associated with the menu.
Public propertyNameGets or sets the name of the Menu.
Public propertySiteGets or sets the ISite of the Component. (Inherited from Component.)
Public propertyTagGets or sets user-defined data associated with the control.
Top

  NameDescription
Protected methodCloneMenuCopies the Menu that is passed as a parameter to the current Menu.
Protected methodCreateMenuHandleCreates a new handle to the Menu.
Public methodCreateObjRefCreates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.)
Public methodDisposeReleases all resources used by the Component. (Inherited from Component.)
Protected methodDispose(Boolean)Disposes of the resources, other than memory, used by the Menu. (Overrides Component.Dispose(Boolean).)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeReleases unmanaged resources and performs other cleanup operations before the Component is reclaimed by garbage collection. (Inherited from Component.)
Public methodFindMenuItemGets the MenuItem that contains the value specified.
Protected methodFindMergePositionReturns the position at which a menu item should be inserted into the menu.
Public methodGetContextMenuGets the ContextMenu that contains this menu.
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetLifetimeServiceRetrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Public methodGetMainMenuGets the MainMenu that contains this menu.
Protected methodGetServiceReturns an object that represents a service provided by the Component or by its Container. (Inherited from Component.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodInitializeLifetimeServiceObtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodMemberwiseClone(Boolean)Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.)
Public methodMergeMenuMerges the MenuItem objects of one menu with the current menu.
Protected methodProcessCmdKeyProcesses a command key.
Public methodToStringReturns a String that represents the Menu control. (Overrides Component.ToString.)
Top

  NameDescription
Public eventDisposedOccurs when the component is disposed by a call to the Dispose method. (Inherited from Component.)
Top

  NameDescription
Public fieldStatic memberFindHandleSpecifies that the FindMenuItem method should search for a handle.
Public fieldStatic memberFindShortcutSpecifies that the FindMenuItem method should search for a shortcut.
Top

This class is the base class for the MainMenu, MenuItem, and ContextMenu classes. You cannot create an instance of this class. The menus for an application consist of MenuItem objects. These can contain other MenuItem objects, representing submenu items. 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.

Unlike many base classes, the Menu class uses its derived classes to define many of its properties. 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. The MenuItems property contains a list of MenuItem objects stored in the menu class. For a MainMenu or ContextMenu, this property contains all the MenuItem objects that are displayed. For a MenuItem, the MenuItems property represents the submenu items associated with it.

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.

The Menu class also defines the nested class Menu.MenuItemCollection. This class defines the collection of MenuItem objects used by the MenuItems property. You can use the methods of the Menu.MenuItemCollection class to add and remove menu items from a MainMenu, ContextMenu, or MenuItem.

The following code example uses the derived class, MenuItem, to create a menu structure for a form. 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. The example requires that there is a MainMenu object named mainMenu1 and four MenuItem objects named menuItem1, menuItem2, menuItem3, and menuItem4.

 Public Sub CreateMyMenu()
     ' Set the caption for the top-level menu item.
     menuItem1.Text = "Edit" 
     ' Set the caption for the first submenu.
     menuItem2.Text = "Font Size" 
     ' Set the caption for menuItem2's first submenu.
     menuItem3.Text = "Small" 
     ' Set the checked property to true since this is the default value.
     menuItem3.Checked = True 
     ' Define a shortcut key combination for the menu item.
     menuItem3.Shortcut = Shortcut.CtrlS
     ' Set the caption of the second sub menu item of menuItem2.
     menuItem4.Text = "Large" 
     ' Define a shortcut key combination for the menu item.
     menuItem4.Shortcut = Shortcut.CtrlL
     ' Set the index of the menu item so it is placed below the first submenu item.
     menuItem4.Index = 1
     ' Add menuItem3 and menuItem4 to menuItem2's list of menu items.
     menuItem2.MenuItems.Add(menuItem3)
     menuItem2.MenuItems.Add(menuItem4)
     ' Add menuItem2 to menuItem1's list of menu items.
     menuItem1.MenuItems.Add(menuItem2)
     ' Add menuItem1 to the MainMenu for displaying.
     mainMenu1.MenuItems.Add(menuItem1)
 End Sub

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft