109 votes

Windows Forms - L'appui sur la touche Enter active le bouton submit ?

Comment puis-je capturer les pressions sur les touches d'entrée n'importe où dans mon formulaire et les forcer à déclencher l'événement du bouton d'envoi ?

10 votes

Alors pourquoi ne pas appuyer sur la propriété AcceptButton de la réponse de Matt Hamilton ?

1 votes

Utiliser "this.Form.DefaultButton = MyButton.UniqueID ;".

211voto

Matt Hamilton Points 98268

Si vous définissez votre Form 's AcceptButton à l'un des éléments suivants Button sur le Form vous obtiendrez ce comportement par défaut.

Sinon, définissez le KeyPreview à la propriété true sur le Form et traiter son KeyDown événement. Vous pouvez vérifier si le Enter et prendre les mesures nécessaires.

9 votes

Et n'oubliez pas le bouton d'annulation (CancelButton) pour la gestion de la touche d'échappement.

1 votes

Génial ! J'ai besoin de mieux connaître mon Framewrok ;)

31voto

RuviSL Points 83
private void textBox_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
        button.PerformClick();
}

25voto

bouvard Points 2449

Vous pouvez désigner un bouton comme étant le "AcceptButton" dans les propriétés du formulaire, ce qui permettra de récupérer toutes les pressions sur la touche "Entrée" du formulaire et de les acheminer vers ce contrôle.

Voir Comment : Désigner un bouton Windows Forms comme bouton d'acceptation à l'aide du Concepteur et notez les quelques exceptions qu'il souligne (zones de texte à plusieurs lignes, etc.).

0 votes

Merci pour le lien, ces exceptions me retardaient.

0 votes

Ce lien semble être mort.

11voto

Sorin Comanescu Points 2087

Comme indiqué précédemment, définissez les paramètres de votre formulaire Bouton d'acceptation à l'un de ses boutons ET définir la propriété Résultat du dialogue de ce bouton à DialogResult.OK afin que l'appelant sache si le dialogue a été accepté ou rejeté.

2voto

itsmatt Points 18905

Le formulaire a un KeyPreview que vous pouvez utiliser pour intercepter la pression du clavier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X