web-dev-qa-db-fra.com

Windows Forms - Entrée touche appuyer sur le bouton d'envoi

Comment capturer les touches de saisie n'importe où dans mon formulaire et le forcer à déclencher l'événement bouton de soumission?

78
FlySwat

Si vous définissez la propriété AcceptButton de votre formulaire sur l'un des boutons du formulaire, vous obtiendrez ce comportement par défaut.

Sinon, définissez la propriété KeyPreview sur True sur le formulaire et gérez son événement KeyDown. Vous pouvez vérifier la touche Entrée et prendre les mesures nécessaires.

172
Matt Hamilton

Vous pouvez désigner un bouton en tant que "AcceptButton" dans les propriétés du formulaire, ce qui interceptera les touches "Entrée" du formulaire et les acheminera vers ce contrôle.

Voir cet article MSDN et notez les quelques exceptions qu'il décrit (zones de texte multiligne, etc.)

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

Comme indiqué précédemment, définissez la propriété AcceptButton de votre formulaire sur l'un de ses boutons ET définissez la propriété DialogResult pour ce bouton sur DialogResult.OK , afin que l'appelant sache si la boîte de dialogue était accepté ou rejeté.

9
Sorin Comanescu

Vous pouvez vous abonner à l'événement KeyUp de la zone de texte.

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{

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

}
6
sanjeev

Le formulaire a une propriété KeyPreview que vous pouvez utiliser pour intercepter la frappe.

2
itsmatt

Définissez l'attribut KeyPreview de votre formulaire sur True, puis utilisez l'événement KeyPress au niveau de votre formulaire pour détecter la touche Entrée. Lors de la détection, appelez le code que vous auriez pour le bouton "soumettre".

0
Bill

Simplement utiliser

this.Form.DefaultButton = MyButton.UniqueID;  

** Mettez votre identifiant de bouton à la place de 'MyButton'.

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