left/right 键盘按钮的使用
Using of left/right keyboard button
我正在尝试使用键盘上的左右按钮调用功能,但不确定如何以正确的方式进行。
这次尝试的结果是,按 left/right 键盘键只会以通常的方式在 GUI 元素之间切换,对给定的功能不起作用。不确定这里有什么问题:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
func1();
}
else if (e.KeyCode == Keys.Left)
{
func2();
}
}
您的代码可以正常工作,只是不允许您事先按下任何按钮。我认为您正在寻找如图所示的通用按键 here
某些评论中提到的启用键预览的替代方法是覆盖 ProcessCmdKey 方法。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Right)
{
func1();
return true;
}
else if (keyData == Keys.Left)
{
func2();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
请参阅this MSDN article了解更多信息。
我正在尝试使用键盘上的左右按钮调用功能,但不确定如何以正确的方式进行。
这次尝试的结果是,按 left/right 键盘键只会以通常的方式在 GUI 元素之间切换,对给定的功能不起作用。不确定这里有什么问题:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Right)
{
func1();
}
else if (e.KeyCode == Keys.Left)
{
func2();
}
}
您的代码可以正常工作,只是不允许您事先按下任何按钮。我认为您正在寻找如图所示的通用按键 here
某些评论中提到的启用键预览的替代方法是覆盖 ProcessCmdKey 方法。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Right)
{
func1();
return true;
}
else if (keyData == Keys.Left)
{
func2();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
请参阅this MSDN article了解更多信息。