C# WinForms 键启动事件在 MDIForm 中打开两个子窗体时令人困惑



我正在研究C# WinForms 4.5 .NET Framework。我正在为键盘向上和向下键使用向上键事件。当 MDIForm 中只有一个子窗体处于打开状态时,它运行良好,但是当有多个打开的子窗体时,它会失去焦点并且事件不起作用。

我尝试聚焦表单并调整向下或向上键,但随后它失去了焦点并将焦点更改为其他形式。

我们必须通过覆盖 ProcessCmdKey 方法来停止特定的 KeyEvent

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData == Keys.Right) || (keyData == Keys.Left) ||
(keyData == Keys.Up) || (keyData == Keys.Down))
{
//Do custom stuff or nothing.
//true if key was processed by control, false otherwise
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}

最新更新