我有一个Menustrip项目Form,Form当我按下它时它会关闭.我想为我的MenuStrip项目制作快捷键Esc,但在"ShorcutKey"设置中,它没有选项Esc,有什么方法可以让它做到这一点Esc吗?我必须将它显示在作为快捷键的MenuStrip项目上Esc.
这样做不起作用:
menuStripItem.ShortcutKeys = Keys.Escape;
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
我认为没有直接解决方案,您可以使用此解决方法,设置ShortcutKeyDisplayString代码
menuStripItem.ShortcutKeyDisplayString = "ESC";
Run Code Online (Sandbox Code Playgroud)
在KeyDown表格检查的情况下,ESC是否按下Close()了表格.
| 归档时间: |
|
| 查看次数: |
4442 次 |
| 最近记录: |