Sie können eine Eigenschaft auf dem Formular festlegen, um dies für Sie zu tun, wenn Sie eine Schaltfläche in dem Formular haben, das das Formular bereits schließt.
Setzen Sie die Eigenschaft CancelButton
des Formulars auf diese Schaltfläche.
Ruft die Tastensteuerung, die angeklickt wird, wenn der Benutzer die Esc Taste drückt.
Wenn Sie nicht über eine Schaltfläche Abbrechen haben dann müssen Sie einen KeyDown
Handler hinzufügen und überprüfen Sie die Esc-Taste, dass:
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
Sie werden auch die KeyPreview
Eigenschaft müssen um wahr zu sein.
Ruft einen Wert ab, der angibt, ob das Formular Schlüsselereignisse empfängt, bevor das Ereignis an das Steuerelement mit Fokus übergeben wird, oder legt diesen fest.
Doch wie Gargo in seinem answer weist darauf hin, bedeutet dies, dass Esc Drücken bearbeitet auf einer Steuerung im Dialog abzubrechen hat auch die Wirkung, den Dialog zu schließen. Um zu vermeiden, dass die ProcessDialogKey
Methode überschreibt, wie folgt:
protected override bool ProcessDialogKey(Keys keyData)
{
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessDialogKey(keyData);
}
Für alternative Lösung sehen Hans Passant Antwort auf diesen Thread: http://stackoverflow.com/questions/2290959/escape-button-to-close-winform-in-c-sharp – RenniePet