我有一个创建类的表单。此类处理在表单上触发的事件。问题是我正在尝试使用 KeyDown 事件,但它不起作用,因为表单上有按钮并且它们正在捕获 KeyDown。我在另一篇文章中发现解决方案是覆盖 ProcessCmdKey。问题是我不知道如何从另一个类中覆盖一个方法。谁能告诉我如何从其他班级中捕获所有 KeyDown 事件?
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Left)
{
MoveLeft(); DrawGame(); DoWhatever();
return true; //for the active control to see the keypress, return false
}
else if (keyData == Keys.Right)
{
MoveRight(); DrawGame(); DoWhatever();
return true; //for the active control to see the keypress, return false
}
else if (keyData == Keys.Up)
{
MoveUp(); DrawGame(); DoWhatever();
return true; //for the active control to see the keypress, return false
}
else if (keyData == Keys.Down)
{
MoveDown(); DrawGame(); DoWhatever();
return true; //for the active control to see the keypress, return false
}
else
return base.ProcessCmdKey(ref msg, keyData);
}