Form.Closing Zdarzenie
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.
Występuje, gdy formularz jest zamykany.
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
Typ zdarzenia
- Atrybuty
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
Zdarzenie Closing jest przestarzałe, począwszy od .NET Framework 2.0; zamiast tego użyj FormClosing zdarzenia.
Zdarzenie Closing występuje, gdy formularz jest zamykany. Po zamknięciu formularza wszystkie zasoby utworzone w obiekcie są zwalniane i formularz jest usuwany. Jeśli anulujesz to zdarzenie, formularz pozostanie otwarty. Aby anulować zamknięcie formularza, ustaw Cancel właściwość przekazanego CancelEventArgs programu obsługi zdarzeń na true
wartość .
Gdy formularz jest wyświetlany jako modalne okno dialogowe, kliknięcie przycisku Zamknij (przycisk z symbolem X w prawym górnym rogu formularza) powoduje ukrycie formularza i DialogResult ustawienie właściwości na DialogResult.Cancel
wartość . Wartość przypisaną DialogResult do właściwości można zastąpić, gdy użytkownik kliknie przycisk Zamknij , ustawiając DialogResult właściwość w programie obsługi zdarzeń dla Closing zdarzenia formularza.
Uwaga
Close Gdy metoda jest wywoływana w oknie wyświetlanym Form jako okno bez moderowania, nie można wywołać Show metody , aby formularz był widoczny, ponieważ zasoby formularza zostały już wydane. Aby ukryć formularz, a następnie uwidocznić go, użyj Control.Hide metody .
Przestroga
Zdarzenia Form.Closed i Form.Closing nie są wywoływane, gdy metoda jest wywoływana w Application.Exit celu zamknięcia aplikacji. Jeśli masz kod weryfikacyjny w jednym z tych zdarzeń, które należy wykonać, przed wywołaniem Exit metody należy wywołać metodę Form.Close dla każdego otwartego formularza osobno.
Jeśli formularz jest formularzem nadrzędnym MDI, Closing zdarzenia wszystkich formularzy podrzędnych MDI są wywoływane przed wystąpieniem zdarzenia formularza nadrzędnego Closing MDI. Ponadto Closed zdarzenia wszystkich formularzy podrzędnych MDI są zgłaszane przed Closed zgłoszeniam zdarzenia formularza nadrzędnego MDI.
Closing Anulowanie zdarzenia formularza podrzędnego MDI nie uniemożliwia Closing wywoływanie zdarzenia formularza nadrzędnego MDI. Jednak anulowanie zdarzenia spowoduje ustawienie true
Cancel właściwości CancelEventArgs , która jest przekazywana jako parametr do formularza nadrzędnego. Aby wymusić zamknięcie wszystkich formularzy nadrzędnych i podrzędnych MDI, ustaw Cancel właściwość na false
w formularzu nadrzędnym MDI.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.