WinForm/C# WinForm ToolStrip 获得焦点时按 ESC 不触发窗口的 KeyDown 事件

xinggang · 2018年11月03日 · 81 次阅读

场景:

点击 ToolStrip 一个按钮弹出一个 GroupControl,然后想按 ESC 键盘隐藏 GroupControl,结果第一次按 ESC 不会触发窗体的 KeyDown 事件,第二次才可以。

原因:

焦点在 ToolStrip 时按 ESC 不触发窗体事件,即使 Form.KeyPreview = true

解决方案:

覆写 ProcessCmdKey 方法。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Escape)
{
//TODO:
}
return base.ProcessCmdKey(ref msg, keyData);
}
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册