Form.FormClosing Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.Cancel
festgelegt 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 true
Cancel -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.