我正在构建一个应用程序,其中所有键输入必须由Windows本身处理。
我将tabstop设置为false,以使每个控制面板除面板外都能抓住焦点(但我不知道它是否有效)。
我将KeyPreview设置为true,并且正在处理此表单上的KeyDown事件。
我的问题是,有时箭头键不再响应:
当我仅按箭头键时,不会触发keydown事件。
如果按下带有控制键的箭头键,将触发keydown事件。
您知道为什么我的箭头键突然停止触发事件吗?
protected override bool IsInputKey(Keys keyData) { switch (keyData) { case Keys.Right: case Keys.Left: case Keys.Up: case Keys.Down: return true; case Keys.Shift | Keys.Right: case Keys.Shift | Keys.Left: case Keys.Shift | Keys.Up: case Keys.Shift | Keys.Down: return true; } return base.IsInputKey(keyData); } protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); switch (e.KeyCode) { case Keys.Left: case Keys.Right: case Keys.Up: case Keys.Down: if (e.Shift) { } else { } break; } }