Menu Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
Menu is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use ToolStripDropDown and ToolStripDropDownMenu instead.
Represents the base functionality for all menus.
This class is not available in .NET Core 3.1 and later versions. Use ToolStripDropDown and ToolStripDropDownMenu instead, which replace and extend the Menu control.
public ref class Menu abstract : System::ComponentModel::Component
[System.ComponentModel.Browsable(false)]
[System.ComponentModel.ListBindable(false)]
[System.Obsolete("`Menu` is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use `ToolStripDropDown` and `ToolStripDropDownMenu` instead.", false, DiagnosticId="WFDEV006", UrlFormat="https://aka.ms/winforms-warnings/{0}")]
public abstract class Menu : System.ComponentModel.Component
[System.ComponentModel.ListBindable(false)]
public abstract class Menu : System.ComponentModel.Component
[<System.ComponentModel.Browsable(false)>]
[<System.ComponentModel.ListBindable(false)>]
[<System.Obsolete("`Menu` is provided for binary compatibility with .NET Framework and is not intended to be used directly from your code. Use `ToolStripDropDown` and `ToolStripDropDownMenu` instead.", false, DiagnosticId="WFDEV006", UrlFormat="https://aka.ms/winforms-warnings/{0}")>]
type Menu = class
inherit Component
[<System.ComponentModel.ListBindable(false)>]
type Menu = class
inherit Component
Public MustInherit Class Menu
Inherits Component
- Inheritance
- Derived
- Attributes
Examples
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:
void 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 );
}
public void 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);
}
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
Remarks
This class is not available in .NET Core 3.1 and later versions. Use ToolStripDropDown and ToolStripDropDownMenu instead.
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.
Constructors
| Name | Description |
|---|---|
| Menu(MenuItem[]) |
Initializes a new instance of the Menu class. |
Fields
| Name | Description |
|---|---|
| FindHandle |
Specifies that the FindMenuItem(Int32, IntPtr) method should search for a handle. |
| FindShortcut |
Specifies that the FindMenuItem(Int32, IntPtr) method should search for a shortcut. |
Properties
| Name | Description |
|---|---|
| Handle |
Gets a value representing the window handle for the menu. |
| IsParent |
Gets a value indicating whether this menu contains any menu items. This property is read-only. |
| MdiListItem |
Gets a value indicating the MenuItem that is used to display a list of multiple document interface (MDI) child forms. |
| MenuItems |
Gets a value indicating the collection of MenuItem objects associated with the menu. |
| Name |
Gets or sets the name of the Menu. |
| Tag |
Gets or sets user-defined data associated with the control. |
Methods
| Name | Description |
|---|---|
| CloneMenu(Menu) |
Copies the Menu that is passed as a parameter to the current Menu. |
| CreateMenuHandle() |
Creates a new handle to the Menu. |
| Dispose(Boolean) |
Disposes of the resources, other than memory, used by the Menu. |
| FindMenuItem(Int32, IntPtr) |
Gets the MenuItem that contains the value specified. |
| FindMergePosition(Int32) |
Returns the position at which a menu item should be inserted into the menu. |
| GetContextMenu() |
Gets the ContextMenu that contains this menu. |
| GetMainMenu() |
Gets the MainMenu that contains this menu. |
| MergeMenu(Menu) |
Merges the MenuItem objects of one menu with the current menu. |
| ProcessCmdKey(Message, Keys) |
Processes a command key. |
| ToString() |