Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Form.FormClosing-Ereignis
Tritt ein, bevor das Formular geschlossen wird.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Das FormClosing-Ereignis tritt ein, während das Formular geschlossen wird. Wenn ein Formular geschlossen wird, wird es verworfen und gibt alle dem Formular zugeordneten Ressourcen frei. Wenn Sie dieses Ereignis abbrechen, bleibt das Formular geöffnet. Um das Schließen eines Formulars abzubrechen, legen Sie die Cancel-Eigenschaft der FormClosingEventArgs-Klasse, die an den Ereignishandler übergeben wird, auf true fest.
Bei einem als modales Dialogfeld angezeigten Formular wird durch Klicken auf die Schaltfläche Schließen (die Schaltfläche mit einem X in der rechten oberen Ecke des Formulars) das Formular ausgeblendet, und die DialogResult-Eigenschaft wird auf DialogResult.Cancel festgelegt. Sie können den Wert überschreiben, der der DialogResult-Eigenschaft beim Klicken auf die Schaltfläche Schließen zugewiesen wird, indem Sie die DialogResult-Eigenschaft in einem Ereignishandler für das FormClosing-Ereignis des Formulars festlegen.
Hinweis
|
|---|
|
Wenn für eine als nicht modales Fenster angezeigte Form die Close-Methode aufgerufen wird, kann das Formular nicht wieder mit der Show-Methode angezeigt werden, da die Ressourcen des Formulars bereits freigegeben wurden. Zum Ausblenden eines Formulars und zum anschließenden Einblenden verwenden Sie die Hide-Methode. |
Wenn das Formular ein übergeordnetes MDI (Multiple Document Interface)-Formular ist, werden die FormClosing-Ereignisse aller untergeordneten MDI-Formulare ausgelöst, bevor das FormClosing-Ereignis des übergeordneten MDI-Formulars 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. Durch Abbrechen des FormClosing-Ereignisses eines untergeordneten MDI-Formulars wird nicht verhindert, dass das FormClosing-Ereignis des übergeordneten MDI-Formulars ausgelöst wird. Durch Abbrechen des Ereignisses wird jedoch die Cancel-Eigenschaft der FormClosingEventArgs-Klasse auf true festgelegt, die als Parameter an das übergeordnete Formular übergeben wird. Wenn Sie erzwingen möchten, dass sämtliche über- und untergeordneten MDI-Formulare geschlossen werden, müssen Sie für die Cancel-Eigenschaft im übergeordneten MDI-Formular false festlegen.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Im folgenden Codebeispiel wird die Verwendung dieses Members veranschaulicht. Im Beispiel meldet ein Ereignishandler das Eintreten des FormClosing-Ereignisses. Diesem Bericht können Sie entnehmen, wann das Ereignis eintritt. Außerdem kann der Bericht Sie beim Debuggen unterstützen. Wenn Sie einen Bericht über mehrere Ereignisse oder häufig eintretende Ereignisse erstellen möchten, sollten Sie MessageBox.Show durch Console.WriteLine ersetzen oder die Meldung an ein mehrzeiliges TextBox anfügen.
Fügen Sie den Beispielcode zum Ausführen in ein Projekt ein, das eine Instanz vom Typ Form mit dem Namen Form1 enthält. Stellen Sie anschließend 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" ); }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis