Comment puis-je capturer les pressions de touche n'importe où sur mon formulaire et le forcer à déclencher l'événement du bouton d'envoi?
Comment puis-je capturer les pressions de touche n'importe où sur mon formulaire et le forcer à déclencher l'événement du bouton d'envoi?
Réponses:
Si vous définissez votre Form
de » AcceptButton
la propriété à l' un des Button
sur le s Form
, vous obtenez ce comportement par défaut.
Sinon, définissez la KeyPreview
propriété true
sur le Form
et gérez son KeyDown
événement. Vous pouvez vérifier la Enter
clé et prendre les mesures nécessaires.
Vous pouvez désigner un bouton comme "AcceptButton" dans les propriétés du formulaire et qui interceptera toutes les touches "Entrée" sur le formulaire et les acheminera vers ce contrôle.
Consultez Comment: désigner un bouton Windows Forms comme bouton d'acceptation à l'aide du concepteur et notez les quelques exceptions qu'il décrit (zones de texte multilignes, etc.)
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 a été acceptée ou rejetée.
Vous pouvez vous abonner à l' KeyUp
événement du TextBox
.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Le formulaire a une propriété KeyPreview que vous pouvez utiliser pour intercepter la pression de touche.
Utilisez simplement
this.Form.DefaultButton = MyButton.UniqueID;
** Mettez votre identifiant de bouton à la place de «MyButton».