MenuItem 类

表示在 MainMenuContextMenu 内显示的单个项。虽然 ToolStripMenuItem 对以前版本的 MenuItem 控件的功能进行了替换和添加,但考虑到向后兼容性和将来的使用(如果选择),仍然保留了 MenuItem

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public Class MenuItem
    Inherits Menu
用法
Dim instance As MenuItem
public class MenuItem : Menu
public ref class MenuItem : public Menu
public class MenuItem extends Menu
public class MenuItem extends Menu

备注

为了显示 MenuItem,必须将其添加到 MainMenuContextMenu。若要创建子菜单,可以将 MenuItem 对象添加到父 MenuItemMenuItems 属性。

MenuItem 类提供使您得以配置菜单项的外观和功能的属性。若要显示菜单项旁边的选中标记,请使用 Checked 属性。可使用该功能来标识在互斥的菜单项列表中选择的菜单项。例如,如果有一组用于在 TextBox 控件中设置文本颜色的菜单项,则可以使用 Checked 属性来标识当前选定的颜色。Shortcut 属性可用于定义键盘组合(可按下该键盘组合来选择菜单项)。

对于在多文档界面 (MDI) 应用程序中显示的 MenuItem 对象,可使用 MergeMenu 方法将 MDI 父级菜单与其子窗体菜单合并以创建合并的菜单结构。因为无法同时在多个位置重用 MenuItem(如在 MainMenuContextMenu 中),所以可以使用 CloneMenu 方法创建可用于其他位置的 MenuItem 的副本。

Popup 事件使您得以在显示菜单前执行任务。例如,可以基于代码状态为该事件创建一个事件处理程序以显示或隐藏菜单项。通过 Select 事件,您可以执行任务,如当用户将鼠标指针放在菜单项上时,为应用程序的菜单项提供详细的帮助。

示例

下面的代码示例创建窗体的菜单结构。该示例代码添加一个 MenuItem 来表示顶级菜单项,再向其添加一个子菜单项以供选择字体大小,然后向该菜单项添加两个子菜单项,它们分别表示应用程序中的大字体选项和小字体选项。此示例要求有一个名为 mainMenu1MainMenu 对象和四个分别名为 menuItem1menuItem2menuItem3menuItem4MenuItem 对象。

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
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 void CreateMyMenu()
{
    // Set the caption for the top-level menu item.
    menuItem1.set_Text("Edit");

    // Set the caption for the first submenu.
    menuItem2.set_Text("Font Size");

    // Set the caption for menuItem2's first submenu.
    menuItem3.set_Text("Small");

    // Set the checked property to true since this is the default value.
    menuItem3.set_Checked(true);

    // Define a shortcut key combination for the menu item.
    menuItem3.set_Shortcut(Shortcut.CtrlS);

    // Set the caption of the second sub menu item of menuItem2.
    menuItem4.set_Text("Large");

    // Define a shortcut key combination for the menu item.
    menuItem4.set_Shortcut(Shortcut.CtrlL);

    // Set the index of the menu item so it is placed below
    //the first submenu item.
    menuItem4.set_Index(1);

    // Add menuItem3 and menuItem4 to menuItem2's list of menu items.
    menuItem2.get_MenuItems().Add(menuItem3);
    menuItem2.get_MenuItems().Add(menuItem4);

    // Add menuItem2 to menuItem1's list of menu items.
    menuItem1.get_MenuItems().Add(menuItem2);

    // Add menuItem1 to the MainMenu for displaying.
    mainMenu1.get_MenuItems().Add(menuItem1);
} //CreateMyMenu

继承层次结构

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Menu
        System.Windows.Forms.MenuItem

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

MenuItem 成员
System.Windows.Forms 命名空间
MainMenu 类
Menu 类
MenuMerge
ContextMenu 类