Я надеюсь, что это поможет вам ..
Переопределить IsInputKey Поведение
Необходимо переопределить поведение IsInputKey , чтобы сообщить, что вы хотите, чтобы клавиша со стрелкой вправо рассматривалась как InputKey, а не как специальная клавиша поведения.
Для этого вы должны переопределить метод для каждого из ваших элементов управления.
Я бы посоветовал вам создать ваши выигранные кнопки, скажем, MyButton
Класс ниже создает пользовательскую кнопку, которая переопределяет метод IsInputKey , так что клавиша со стрелкой вправо не обрабатывается как специальная клавиша. Оттуда вы можете легко сделать это для других клавиш со стрелками или чего-либо еще.
public partial class MyButton : Button
{
protected override bool IsInputKey(Keys keyData)
{
if (keyData == Keys.Right)
{
return true;
}
else
{
return base.IsInputKey(keyData);
}
}
}
После этого вы можете обрабатывать событие события keyDown в каждой отдельной кнопке или в самой форме:
В методе KeyDown кнопок попробуйте установить следующие свойства:
private void myButton1_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
//DoSomething();
}
- ИЛИ -
обрабатывает обычное поведение в форме: (не устанавливайте e.Handled = true; в кнопках)
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
//DoSomething();
}