Form.FormClosing Zdarzenie

Definicja

Występuje przed zamknięciem formularza.

public:
 event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
public event System.Windows.Forms.FormClosingEventHandler? FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler 
Public Custom Event FormClosing As FormClosingEventHandler 

Typ zdarzenia

Przykłady

W poniższym przykładzie pokazano użycie tego elementu członkowskiego. W tym przykładzie program obsługi zdarzeń zgłasza wystąpienie zdarzenia FormClosing . Ten raport pomaga dowiedzieć się, kiedy wystąpi zdarzenie i może pomóc w debugowaniu. Aby zgłosić wiele zdarzeń lub zdarzeń, które występują często, rozważ zastąpienie MessageBox.Show komunikatu ciągiem Console.WriteLine lub dołączeniem go do wielowierszowego TextBoxelementu .

Aby uruchomić przykładowy kod, wklej go w projekcie zawierającym wystąpienie typu Form o nazwie Form1. Następnie upewnij się, że program obsługi zdarzeń jest skojarzony ze zdarzeniem FormClosing .

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" );
}
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _ 
     Handles Form1.FormClosing

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "Cancel", e.Cancel)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event")

End Sub

Uwagi

Zdarzenie FormClosing występuje, gdy formularz jest zamykany. Gdy formularz zostanie zamknięty, zostanie usunięty, zwalniając wszystkie zasoby skojarzone z formularzem. Jeśli anulujesz to zdarzenie, formularz pozostanie otwarty. Aby anulować zamknięcie formularza, ustaw Cancel właściwość przekazanego FormClosingEventArgs programu obsługi zdarzeń na true.

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ść . Możesz zastąpić wartość przypisaną do DialogResult właściwości, gdy użytkownik kliknie przycisk Zamknij , ustawiając DialogResult właściwość w procedurze obsługi zdarzeń dla FormClosing 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 udostępnić go, użyj Hide metody .

Jeśli formularz jest formularzem nadrzędnym interfejsu wielodokumentowego (MDI), FormClosing zdarzenia wszystkich formularzy podrzędnych MDI są zgłaszane przed wystąpieniem zdarzenia formularza FormClosing nadrzędnego MDI. Podobnie FormClosed zdarzenia wszystkich formularzy podrzędnych MDI są zgłaszane przed FormClosed podniesieniem zdarzenia formularza nadrzędnego MDI. FormClosing Anulowanie zdarzenia formularza podrzędnego MDI nie uniemożliwia FormClosing wywoływanie zdarzenia formularza nadrzędnego MDI. Jednak anulowanie zdarzenia spowoduje ustawienie trueCancel właściwości FormClosingEventArgs klasy, 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ż