2010-04-25 123 views
4

我们可以为Windows窗体应用程序菜单项定义快捷键。这样,我可以告诉一个菜单项文件 - >另存具有快捷键按Ctrl +小号菜单项的处理程序是按按Ctrl +小号“神奇地”执行。将Windows窗体ToolStripMenuItem ShortcutKeys属性设置为数字键盘键不起作用

问题在于数字小键盘键,ShortcutKey属性不接受它们(我不明白它们与其他可接受的键有何不同)。

MSDN声明该属性接受类型System.Windows.Forms.Keys(其中一个Keys值,默认值为None。);并且在参数不是值之一时将抛出InvalidEnumArgumentException值。但例如Keys.Divide IS Keys值之一,但它不能使用。

那么我怎样才能设置一个菜单项有一个Numpad *或Numpad +的快捷方式?我是否需要处理Form的ProcessCmdKey事件中的密钥?

回答

2

您必须使用CtrlAlt的快捷方式。

例如:

//working: 
toolStripMenuItem1.ShortcutKeys = Keys.Control | Keys.NumPad0; 
//throws exception 
toolStripMenuItem1.ShortcutKeys = Keys.NumPad0; 
+0

是有道理的,当我考虑一下。 – Axarydax 2010-04-26 08:02:02

1

要回答这个问题有关使用小键盘*和小键盘+

  • 小键盘*被称为多重键。枚举名称是Multiply

  • Numpad +被称为添加键。枚举名称是Add

  • Numpad -被称为减法键。枚举名称是Subtract

在Visual Studio的属性窗口中(至少不是在Visual Studio 2008中)不能选择它们,但可以编辑相应的源代码;其中设置了属性ShortcutKeys。例如,对于小键盘+名为mnuMoreTime菜单项:

this.mnuMoreTime.ShortcutKeys = 
    ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | 
            System.Windows.Forms.Keys.Add))); 
相关问题