2008-10-02 10 views

Répondre

2

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

154

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.

+1

C'était parfait !, merci Matt. :) – Bravo

+5

et ne pas oublier CancelButton pour la manipulation Escape keypress – WholeLifeLearner

+1

Awesome! J'ai besoin de mieux connaître mon Framewrok;) – Jack

0

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

20

Vous pouvez désigner un bouton comme "AcceptButton" dans les propriétés du formulaire et qui interceptera toutes les pressions de touche "Entrée" sur le formulaire et les acheminera vers ce contrôle.

Voir this MSDN article et notez les quelques exceptions il donne un aperçu (plusieurs lignes texte-boîtes, etc.)

+0

Merci pour le lien, ces exceptions où me tenir en place. – ubiquibacon

8

Comme indiqué précédemment, mis AcceptButton propriété de votre formulaire à l'un de ses boutons et définir les DialogResult pour ce bouton à DialogResult.OK, afin que l'appelant sache si la boîte de dialogue a été acceptée ou rejetée.

5

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(); 

} 
+1

Juste ce que je cherchais. J'ai bouton dialogresult mis à OK et ne voulait pas écrire le code inutile pour entrer pour travailler! – Kristjan1215

12
private void textBox_KeyDown(object sender, KeyEventArgs e) { 
    if (e.KeyCode == Keys.Enter){ 
     button.PerformClick(); 
    } 
} 
0
if (e.KeyCode.ToString() == "Return") 
    { 
     //do something 
    } 
0

utiliser simplement

this.Form.DefaultButton = MyButton.UniqueID; 

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

Questions connexes