Form.OnClosing(CancelEventArgs) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Closing Zgłasza zdarzenie.
protected:
virtual void OnClosing(System::ComponentModel::CancelEventArgs ^ e);
protected virtual void OnClosing (System.ComponentModel.CancelEventArgs e);
abstract member OnClosing : System.ComponentModel.CancelEventArgs -> unit
override this.OnClosing : System.ComponentModel.CancelEventArgs -> unit
Protected Overridable Sub OnClosing (e As CancelEventArgs)
Parametry
Element CancelEventArgs zawierający dane zdarzenia.
Przykłady
W poniższym przykładzie użyto Closing metody do przetestowania, czy tekst w obiekcie TextBox uległ zmianie. Jeśli tak, użytkownik zostanie poproszony o zapisanie zmian w pliku.
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
Uwagi
Przestroga
Metoda OnClosing jest przestarzała, począwszy od .NET Framework 2.0; zamiast tego użyj OnFormClosing metody .
Podnoszenie zdarzenia wywołuje program obsługi zdarzeń przez delegata. Aby uzyskać więcej informacji, zobacz Obsługa i podnoszenie zdarzeń.
Metoda OnClosing umożliwia również klasom pochodnym obsługę zdarzenia bez dołączania delegata. Zastępowanie tej metody jest preferowaną techniką obsługi zdarzenia w klasie pochodnej.
Przestroga
Metody OnClosed i OnClosing nie są wywoływane, gdy metoda jest wywoływana w Application.Exit celu zamknięcia aplikacji. Jeśli masz kod weryfikacyjny w jednej z tych metod, które należy wykonać, przed wywołaniem Exit metody należy wywołać metodę Form.Close dla każdego otwartego formularza osobno.
Uwagi dotyczące dziedziczenia
Podczas zastępowania OnClosing(CancelEventArgs) w klasie pochodnej należy wywołać metodę klasy OnClosing(CancelEventArgs) bazowej, aby zarejestrowani delegaci odbierali zdarzenie.