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


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 , используйте метод.

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

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

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

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