Teilen über


Form.FormClosing Ereignis

Definition

Tritt ein, bevor das Formular geschlossen wird.

public:
 event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
public event System.Windows.Forms.FormClosingEventHandler? FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler 
Public Custom Event FormClosing As FormClosingEventHandler 

Ereignistyp

Beispiele

Im folgenden Beispiel wird die Verwendung dieses Members veranschaulicht. Im Beispiel meldet ein Ereignishandler das Auftreten des Ereignisses FormClosing . Dieser Bericht hilft Ihnen, zu erfahren, wann das Ereignis eintritt, und kann Sie beim Debuggen unterstützen. Um über mehrere Ereignisse oder ereignisse zu berichten, die häufig auftreten, sollten Sie die Nachricht durch Console.WriteLine ein mehrlineiges TextBoxersetzen MessageBox.Show oder anfügen.

Um den Beispielcode auszuführen, fügen Sie ihn in ein Projekt ein, das eine instance des Typs Form enthältForm1. Stellen Sie dann sicher, dass der Ereignishandler dem FormClosing Ereignis zugeordnet ist.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Cancel", e.Cancel );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "FormClosing Event" );
}
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _ 
     Handles Form1.FormClosing

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Cancel", e.Cancel)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event")

End Sub

Hinweise

Das FormClosing Ereignis tritt beim Schließen des Formulars auf. Wenn ein Formular geschlossen wird, wird es verworfen, und alle dem Formular zugeordneten Ressourcen werden freigegeben. Wenn Sie dieses Ereignis abbrechen, bleibt das Formular geöffnet. Um das Schließen eines Formulars abzubrechen, legen Sie die Cancel Eigenschaft des FormClosingEventArgs an Ihren Ereignishandler übergebenen auf fest true.

Wenn ein Formular als modales Dialogfeld angezeigt wird, bewirkt das Klicken auf die Schaltfläche Schließen (die Schaltfläche mit einem X in der oberen rechten Ecke des Formulars), dass das Formular ausgeblendet wird und die DialogResult -Eigenschaft auf DialogResult.Cancelfestgelegt wird. Sie können den der DialogResult Eigenschaft zugewiesenen Wert überschreiben, wenn der Benutzer auf die Schaltfläche Schließen klickt, indem Sie die DialogResult Eigenschaft in einem Ereignishandler für das FormClosing Ereignis des Formulars festlegen.

Hinweis

Wenn die Close -Methode in einem Form als moduslosen Fenster angezeigt wird, können Sie die Show -Methode nicht aufrufen, um das Formular sichtbar zu machen, da die Ressourcen des Formulars bereits freigegeben wurden. Verwenden Sie die Hide -Methode, um ein Formular auszublenden und es dann sichtbar zu machen.

Wenn es sich bei dem Formular um ein übergeordnetes MDI-Formular (Multiple Document Interface) handelt, werden die FormClosing Ereignisse aller untergeordneten MDI-Formulare ausgelöst, bevor das Ereignis des übergeordneten MDI-Formulars FormClosing ausgelöst wird. Ebenso werden die FormClosed Ereignisse aller untergeordneten MDI-Formulare ausgelöst, bevor das FormClosed Ereignis des übergeordneten MDI-Formulars ausgelöst wird. Das Abbrechen des FormClosing Ereignisses eines untergeordneten MDI-Formulars verhindert nicht, dass das FormClosing Ereignis des übergeordneten MDI-Formulars ausgelöst wird. Beim Abbrechen des Ereignisses wird jedoch die trueCancel -Eigenschaft der -Klasse festgelegt, die FormClosingEventArgs als Parameter an das übergeordnete Formular übergeben wird. Um das Schließen aller übergeordneten und untergeordneten MDI-Formulare zu erzwingen, legen Sie die Cancel -Eigenschaft im übergeordneten MDI-Formular auf false fest.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Gilt für:

Weitere Informationen