向上,向下,向左和向右箭头键不会触发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