Udostępnij za pośrednictwem


Form.Closing Zdarzenie

Definicja

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 truewartość .

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.Cancelwartość . 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 trueCancel 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ń.

Dotyczy

Zobacz też