it-swarm.com.ru

Windows Forms - Нажатие клавиши активирует кнопку отправки?

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

78
FlySwat

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

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

172
Matt Hamilton

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

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

20
bouvard
private void textBox_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}
17
ruvi

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

9
Sorin Comanescu

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

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{

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

}
6
sanjeev

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

2
itsmatt

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

0
Bill

Просто использовать

this.Form.DefaultButton = MyButton.UniqueID;  

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

0
Bino Mathew Varghese
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
0
BenW