Form.Closing 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 beim Schließen des Formulars ein.
public:
event System::ComponentModel::CancelEventHandler ^ Closing;
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler? Closing;
member this.Closing : System.ComponentModel.CancelEventHandler
[<System.ComponentModel.Browsable(false)>]
member this.Closing : System.ComponentModel.CancelEventHandler
Public Custom Event Closing As CancelEventHandler
Ereignistyp
- Attribute
Beispiele
Im folgenden Beispiel wird Closing verwendet, um zu testen, ob sich der Text in einem TextBox geändert hat. Wenn ja, wird der Benutzer gefragt, ob die Änderungen in einer Datei gespeichert werden sollen.
private:
void Form1_Closing( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
{
// Determine if text has changed in the textbox by comparing to original text.
if ( textBox1->Text != strMyOriginalText )
{
// Display a MsgBox asking the user to save changes or abort.
if ( MessageBox::Show( "Do you want to save changes to your text?", "My Application", MessageBoxButtons::YesNo ) == ::DialogResult::Yes )
{
// Cancel the Closing event from closing the form.
e->Cancel = true;
// Call method to save file...
}
}
}
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// Determine if text has changed in the textbox by comparing to original text.
if (textBox1.Text != strMyOriginalText)
{
// Display a MsgBox asking the user to save changes or abort.
if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Cancel the Closing event from closing the form.
e.Cancel = true;
// Call method to save file...
}
}
}
Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
' Determine if text has changed in the textbox by comparing to original text.
If textBox1.Text <> strMyOriginalText Then
' Display a MsgBox asking the user to save changes or abort.
If MessageBox.Show("Do you want to save changes to your text?", "My Application", MessageBoxButtons.YesNo) = DialogResult.Yes Then
' Cancel the Closing event from closing the form.
e.Cancel = True
End If ' Call method to save file...
End If
End Sub
End Class
Hinweise
Achtung
Das Closing Ereignis ist ab dem .NET Framework 2.0 veraltet. Verwenden Sie stattdessen das FormClosing Ereignis.
Das Closing Ereignis tritt beim Schließen des Formulars auf. Wenn ein Formular geschlossen wird, werden alle im Objekt erstellten Ressourcen freigegeben, und das Formular wird verworfen. Wenn Sie dieses Ereignis abbrechen, bleibt das Formular geöffnet. Um das Schließen eines Formulars abzubrechen, legen Sie die Cancel Eigenschaft des CancelEventArgs 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 Closing 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 Control.Hide -Methode, um ein Formular auszublenden und es dann sichtbar zu machen.
Achtung
Die Form.Closed Ereignisse und Form.Closing werden nicht ausgelöst, wenn die Application.Exit -Methode aufgerufen wird, um Ihre Anwendung zu beenden. Wenn Sie über Validierungscode in einem dieser Ereignisse verfügen, das ausgeführt werden muss, sollten Sie die Form.Close Methode für jedes geöffnete Formular einzeln aufrufen, bevor Sie die Exit -Methode aufrufen.
Wenn es sich bei dem Formular um ein übergeordnetes MDI-Formular handelt, werden die Closing Ereignisse aller untergeordneten MDI-Formulare ausgelöst, bevor das Ereignis des übergeordneten MDI-Formulars Closing ausgelöst wird. Darüber hinaus werden die Closed Ereignisse aller untergeordneten MDI-Formulare ausgelöst, bevor das Closed Ereignis des übergeordneten MDI-Formulars ausgelöst wird. Das Abbrechen des Closing Ereignisses eines untergeordneten MDI-Formulars verhindert nicht, dass das Closing Ereignis des übergeordneten MDI-Formulars ausgelöst wird. Beim Abbrechen des Ereignisses wird jedoch die true
Cancel -Eigenschaft der festgelegt, die CancelEventArgs 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.