Form.FormClosing 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 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.Cancel
wartość . 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 true
Cancel 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ń.