Puede establecer una propiedad en el formulario para hacer esto por usted si ya tiene un botón en el formulario que cierra el formulario.
Establezca la propiedad CancelButton
del formulario en ese botón.
Obtiene o establece el control de botón que se hace clic cuando el usuario presiona la tecla Esc .
Si usted no tiene un botón de cancelación, entonces tendrá que añadir un manejador KeyDown
y comprobar si la tecla Esc en la que:
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
También tendrá que establecer la propiedad KeyPreview
a verdad
Obtiene o establece un valor que indica si el formulario recibirá eventos clave antes de pasar el evento al control que tiene el foco.
Sin embargo, como señala en su Gargo answer esto significará que al pulsar Esc para abortar una edición en un control en el cuadro de diálogo también tendrá el efecto de cerrar el cuadro de diálogo. Para evitar que reemplazar el método ProcessDialogKey
como sigue:
protected override bool ProcessDialogKey(Keys keyData)
{
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessDialogKey(keyData);
}
solución alternativa Para ver la respuesta de Hans Passant sobre este tema: http://stackoverflow.com/questions/2290959/escape-button-to-close-winform-in-c-sharp – RenniePet