代码之家  ›  专栏  ›  技术社区  ›  Axarydax

将Windows窗体ToolStripMenuItem ShortcutKeys属性设置为NumPad键不起作用

  •  4
  • Axarydax  · 技术社区  · 14 年前

    我们可以为Windows窗体应用程序菜单项定义快捷键。这样我就能知道菜单上的东西了 文件&保存 使用快捷键 Ctrl键 + S 菜单项的处理程序在按下后“神奇地”执行 Ctrl键 + S .

    问题在于数字键盘键, ShortcutKey 属性不接受它们(我不理解它们与其他可接受的键有什么不同)。

    msdn声明属性接受类型 system.windows.forms.keys系统.windows.forms.keys (键值之一。默认值为无。);以及 InvalidEnumArgumentException 当参数不是 钥匙 价值观。但例如键。除法 键值之一,但不能使用。

    那么,我如何设置菜单项,使其具有numpad的快捷方式呢? * 或数字键盘 + ?我需要处理窗体中的密钥吗 进程CMDKEY 事件?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Jasper wontondon    13 年前

    你必须使用 Ctrl键 中高音 捷径。

    例子:

    //working:  
    toolStripMenuItem1.ShortcutKeys = Keys.Control | Keys.NumPad0;  
    //throws exception  
    toolStripMenuItem1.ShortcutKeys = Keys.NumPad0;  
    
        2
  •  1
  •   Peter Mortensen Len Greski    14 年前

    回答有关使用numpad的问题 * Numpad + :

    • 小键盘 * 称为乘法键。枚举名称为 Multiply .

    • 小键盘 + 称为添加键。枚举名称为 Add .

    • 小键盘 - 称为减法键。枚举名称为 Subtract .

    无法在Visual Studio的属性窗口中选择这些代码(至少在Visual Studio 2008中不可能),但可以编辑相应的源代码;其中属性 ShortcutKeys 被设置。例如,numpad + 对于名为的菜单项 mnuMoreTime :

    this.mnuMoreTime.ShortcutKeys = 
        ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control |
                                      System.Windows.Forms.Keys.Add)));