向上,向下,向左和向右箭头键不会触发KeyDown事件

我正在构建一个应用程序,其中所有键输入必须由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;

}

}

以上是 向上,向下,向左和向右箭头键不会触发KeyDown事件 的全部内容, 来源链接: utcz.com/qa/416354.html

回到顶部