Vous pouvez définir une propriété sur le formulaire pour le faire pour vous si vous avez déjà un bouton sur le formulaire qui ferme le formulaire.
Définissez la propriété CancelButton
du formulaire sur ce bouton.
Obtient ou définit le contrôle de bouton qui est cliqué lorsque l'utilisateur appuie sur la touche Echap .
Si vous n'avez pas alors un bouton d'annulation, vous aurez besoin d'ajouter un gestionnaire KeyDown
et vérifiez la touche Echap en ce que:
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
Vous aurez également définir la propriété KeyPreview
à vrai.
Obtient ou définit une valeur indiquant si le formulaire recevra des événements de clé avant que l'événement soit transmis au contrôle qui a le focus.
Cependant, comme Gargo souligne dans son answer cela signifie qu'en appuyant sur Echap pour annuler une modification sur un contrôle dans la boîte de dialogue aura également pour effet de fermer la boîte de dialogue. Pour éviter que remplacer la méthode ProcessDialogKey
comme suit:
protected override bool ProcessDialogKey(Keys keyData)
{
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessDialogKey(keyData);
}
solution de rechange pour voir la réponse de Hans sur ce fil Passant: http://stackoverflow.com/questions/2290959/escape-button-to-close-winform-in-c-sharp – RenniePet