如何:向 ToolStripMenuItem 添加增强功能

更新:2007 年 11 月

可以采用下列方式增强 MenuStripContextMenuStrip 控件的可用性:

  • 添加选中标记以指定打开或关闭某项功能(例如是否沿字处理应用程序的边距显示标尺),或指示显示的是一列文件中的哪一个(如在“窗口”菜单上)。

  • 添加可视化地表示菜单命令的图像。

  • 显示快捷键以提供代替鼠标执行命令的键盘。例如,按 Ctrl+C 执行 Copy 命令。

  • 显示访问键以提供代替鼠标进行菜单导航的键盘。例如,按 Alt+F 选择“文件”菜单。

  • 显示分隔线以便对相关命令进行分组,提高菜单的可读性。

显示菜单命令的选中标记

  • 将其 Checked 属性设置为 true。

    这会将 CheckState 属性也设置为 true。仅在以下情况使用此过程:无论是否选择菜单命令,只要该命令出现,都希望默认情况下为选中状态。

显示随每次单击更改状态的选中标记

向菜单命令添加图像

说明:

图像边距也可以显示选中标记(如果您选择)。此外,您还可以将图像的 Checked 属性设置为 true,这样,在运行时显示的图像周围将带有一个阴影框。

显示菜单命令的快捷键

  • 将菜单命令的 ShortcutKeys 属性设置为所需的键盘组合(如 Ctrl+O 表示“打开”菜单命令),并将 ShowShortcutKeys 属性设置为 true。

显示菜单命令的自定义快捷键

显示菜单命令的访问键

  • 设置菜单命令的 Text 属性时,在您要为其加上下划线以作为访问键的字母前面输入一个“and”符 (&)。例如,键入 &Open 作为菜单项的 Text 属性将使菜单命令显示为 Open。

    若要定位到此菜单命令,请按 Alt 键使 MenuStrip 得到焦点,然后按该菜单名的访问键。当菜单打开并显示带访问键的项时,只需按访问键就可选择菜单命令。

说明:

避免定义重复的访问键,如在同一个菜单系统中两次定义 Alt+F。重复访问键的选择顺序无法保证。

在菜单命令之间显示分隔线

  • 定义了 MenuStrip 及其包含的项之后,请使用 AddRangeAdd 方法将菜单命令和 ToolStripSeparator 控件按所需顺序添加到 MenuStrip 中。

    [Visual Basic]

    ' This code adds a top-level File menu to the MenuStrip.
    Me.menuStrip1.Items.Add(New ToolStripMenuItem() _
    {Me.fileToolStripMenuItem})
    
    ' This code adds the New and Open menu commands, a separator bar, 
    ' and the Save and Exit menu commands to the top-level File menu, 
    ' in that order.
    Me.fileToolStripMenuItem.DropDownItems.AddRange(New _
    ToolStripMenuItem() {Me.newToolStripMenuItem, _
    Me.openToolStripMenuItem, Me.toolStripSeparator1, _
    Me.saveToolStripMenuItem, Me.exitToolStripMenuItem})
    

    [C#]

    // This code adds a top-level File menu to the MenuStrip.
    this.menuStrip1.Items.Add(new ToolStripItem[]_
    {this.fileToolStripMenuItem});
    
    // This code adds the New and Open menu commands, a separator bar, 
    // and the Save and Exit menu commands to the top-level File menu, 
    // in that order.
    this.fileToolStripMenuItem.DropDownItems.AddRange(new _
    ToolStripItem[] {
    this.newToolStripMenuItem,
    this.openToolStripMenuItem,
    this.toolStripSeparator1,
    this.saveToolStripMenuItem,
    this.exitToolStripMenuItem});
    

请参见

参考

MenuStrip

ToolStripMenuItem

MenuStrip 控件概述(Windows 窗体)