У меня есть следующий код, который обнаруживает нажатие клавиши ввода и работает нормально.однако, если вы нажмете кнопку в форме, то она перестанет работать, т. е. нажатая кнопка теперь имеет фокус, и нажатие клавиши ввода переходит прямо к этой кнопке.
private void Form1_Load(object sender, EventArgs e)
{
KeyPreview = true;
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show("Enter pressed");
}
}
Я попытался выполнить следующее безуспешно;
- Использование форм PreviewKeyEvent вместо keyUp
- Использование форм KeyDown вместо KeyUp
- Создание кнопки, выбранной в качестве 'AcceptButton' формы
Мой обходной путь - создать кнопку, которую форма «выбирает» при загрузке, которая будет нажиматься при вводе.Затем включите таймер, чтобы сохранить фокус на этой кнопке в случае, если выбраны другие.Это кажется немного плохим решением.
Любые идеи будут оценены.Похоже, я упускаю что-то очевидное.
Фил