我的Menustrip
上有一个项目,当我按下它时Form
它会关闭我的。Form
我想为我的MenuStrip
Item制作快捷键Esc,但是在“ShorcutKey”设置中,它没有选项Esc,有什么办法可以做到Esc吗?我必须让它显示在作为快捷键的MenuStrip
项目上。Esc
这样做不起作用:
menuStripItem.ShortcutKeys = Keys.Escape;
Winforms 对您选择的快捷键很挑剔。规则是它必须是功能键 (F1-F12) 或包含其中之一Keys.Control
或Keys.Alt
包含的另一个键。这里更大的意图是您不能意外替换可能用于例如 a 的普通密钥TextBox
。Escape 键通常操作对话框的取消按钮。
Keys.Escape
比较特别;Alt+Escape 和 Ctrl+Escape 不起作用,因为它们是 Windows 中的全局快捷键。
所以你不能使用该ShortcutKeys
属性;您必须以不同的方式识别 Escape 键。通过覆盖该ProcessCmdKey()
方法可以在您的 Form 类中轻松完成。将此代码粘贴到您的表单中:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Escape) {
this.Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
我认为没有直接的解决方案,您可以使用此解决方法,ShortcutKeyDisplayString
在代码中设置
menuStripItem.ShortcutKeyDisplayString = "ESC";
在表单的KeyDown
事件中,检查是否ESC
按下Close()
了表单。