Как я могу захватить ввод нажатий в любом месте моей формы и заставить его запустить событие кнопки отправки?
Windows Forms - Enter keypress активирует кнопку отправки?
Ответ 1
Если вы установили свойство FormButton в одну из кнопок в форме, вы получите это поведение по умолчанию.
В противном случае установите для свойства KeyPreview значение True в форме и обработайте его событие KeyDown. Вы можете проверить клавишу Enter и предпринять необходимые действия.
Ответ 2
Вы можете назначить кнопку в качестве "AcceptButton" в свойствах формы, и она будет захватывать любые "Enter" нажатия на форму и направлять их в этот элемент управления.
Смотрите эту статью MSDN и обратите внимание на несколько исключений, которые она описывает (многострочные текстовые поля и т.д.)
Ответ 3
private void textBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter){
button.PerformClick();
}
}
Ответ 4
Как указано выше, установите для своей формы свойство AcceptButton одной из его кнопок И установите для свойства DialogResult для этой кнопки значение DialogResult.OK, чтобы вызывающий абонент узнал, был ли диалог принят или отклонен.
Ответ 5
Вы можете подписаться на событие KeyUp в текстовом поле.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
DoSomething();
}
Ответ 6
Форма имеет свойство KeyPreview, которое вы можете использовать для перехвата нажатия клавиши.
Ответ 7
Установите для атрибута KeyPreview в вашей форме значение True, затем используйте событие KeyPress на уровне вашей формы, чтобы обнаружить ключ Enter. При обнаружении вызовите любой код, который вы бы указали для кнопки "отправить".
Ответ 8
if (e.KeyCode.ToString() == "Return")
{
//do something
}
Ответ 9
Просто используйте
this.Form.DefaultButton = MyButton.UniqueID;
** Поместите свой идентификатор кнопки вместо "MyButton".