Windows Forms - Нажатие клавиши активирует кнопку отправки? - PullRequest
81 голосов
/ 03 октября 2008

Как я могу получить нажатия клавиш ввода в любом месте моей формы и заставить его запустить событие кнопки отправки?

Ответы [ 9 ]

183 голосов
/ 03 октября 2008

Если вы установите свойство AcceptButton вашей формы на одну из кнопок на форме, вы получите такое поведение по умолчанию.

В противном случае установите для свойства KeyPreview значение True в форме и обработайте его событие KeyDown. Вы можете проверить наличие клавиши Enter и предпринять необходимые действия.

20 голосов
/ 03 октября 2008

Вы можете назначить кнопку как «AcceptButton» в свойствах формы, и она будет перехватывать любые нажатия клавиш «Enter» в форме и направлять их к этому элементу управления.

См. эту статью MSDN и обратите внимание на несколько исключений, которые она выделяет (многострочные текстовые поля и т. Д.)

19 голосов
/ 25 июля 2013
private void textBox_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}
9 голосов
/ 10 июня 2009

Как уже говорилось, установите свойство AcceptButton вашей формы на одну из ее кнопок И установите для свойства DialogResult для этой кнопки значение DialogResult.OK , чтобы чтобы вызывающий абонент знал, был ли диалог принят или отклонен.

6 голосов
/ 20 апреля 2013

Вы можете подписаться на событие KeyUp текстового поля.

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{

    if(e.KeyCode == Keys.Enter)
       DoSomething();

}
2 голосов
/ 03 октября 2008

Форма имеет свойство KeyPreview , которое можно использовать для перехвата нажатия клавиши.

0 голосов
/ 03 марта 2016

Просто используйте

this.Form.DefaultButton = MyButton.UniqueID;  

** Поставьте свой идентификатор кнопки вместо «MyButton».

0 голосов
/ 29 мая 2015
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
0 голосов
/ 03 октября 2008

Установите для атрибута KeyPreview в форме значение True, а затем используйте событие KeyPress на уровне формы для обнаружения клавиши Enter. При обнаружении вызовите любой код для кнопки «Отправить».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...