У меня есть форма, которая создает класс. Этот класс обрабатывает события, возникающие в форме. Проблема в том, что я пытаюсь использовать событие 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);
}