Поделиться через


Form.FormClosing Событие

Определение

Происходит перед закрытием формы.

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 

Тип события

Примеры

В следующем примере показано использование этого элемента. В этом примере обработчик событий сообщает о возникновении FormClosing события. Этот отчет поможет вам узнать, когда происходит событие, и поможет вам в отладке. Чтобы сообщить о нескольких событиях или о событиях, которые происходят часто, рекомендуется заменить MessageBox.ShowConsole.WriteLine сообщение или добавить его в многостроочный TextBox.

Чтобы выполнить пример кода, вставьте его в проект, содержащий экземпляр типа Form с именем Form1. Затем убедитесь, что обработчик событий связан с событием 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

Комментарии

Событие FormClosing возникает при закрытии формы. При закрытии формы она удаляется, освобождая все ресурсы, связанные с формой. Если отменить это событие, форма останется открытой. Чтобы отменить закрытие формы, задайте Cancel для свойства объекта , переданного FormClosingEventArgs обработчику событий, значение true.

Если форма отображается как модальное диалоговое окно, нажатие кнопки Закрыть (кнопка с X в правом верхнем углу формы) приводит к скрытию формы, а DialogResult свойству — значение DialogResult.Cancel. Вы можете переопределить значение, присвоенное свойству DialogResult , когда пользователь нажимает кнопку Закрыть , задав DialogResult свойство в обработчике FormClosing событий для события формы.

Примечание

При вызове Close метода в , отображаемом Form как немодированное окно, нельзя вызвать Show метод , чтобы сделать форму видимой, так как ресурсы формы уже освобождены. Чтобы скрыть форму и сделать ее видимой Hide , используйте метод .

Если форма является родительской формой FormClosing многодокументного интерфейса (MDI), события всех дочерних форм MDI вызываются перед событием родительской FormClosing формы MDI. Аналогичным образом события FormClosed всех дочерних форм MDI вызываются перед событием FormClosed родительской формы MDI. Отмена FormClosing события дочерней формы MDI не препятствует возникновению FormClosing события родительской формы MDI. Однако при отмене события будет задано trueCancel свойство FormClosingEventArgs класса , которое передается в качестве параметра в родительскую форму. Чтобы принудительно закрыть все родительские и дочерние формы MDI, присвойте свойству Cancel значение false в родительской форме MDI.

Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.

Применяется к

См. также раздел