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 Formde » AcceptButtonla propriété à l' un des Buttonsur le s Form, vous obtenez ce comportement par défaut.
Sinon, définissez la KeyPreviewpropriété truesur le Formet gérez son KeyDownévénement. Vous pouvez vérifier la Enterclé 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».