Form.OnClosing(CancelEventArgs) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает событие Closing.
protected:
virtual void OnClosing(System::ComponentModel::CancelEventArgs ^ e);
protected virtual void OnClosing (System.ComponentModel.CancelEventArgs e);
abstract member OnClosing : System.ComponentModel.CancelEventArgs -> unit
override this.OnClosing : System.ComponentModel.CancelEventArgs -> unit
Protected Overridable Sub OnClosing (e As CancelEventArgs)
Параметры
Объект CancelEventArgs, содержащий данные события.
Примеры
В следующем примере используется Closing для проверки того, изменился ли текст в TextBox . Если это так, пользователю будет предложено сохранить изменения в файле.
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
Комментарии
Внимание!
Метод OnClosing является устаревшим, начиная с платформа .NET Framework 2.0; используйте OnFormClosing вместо него метод .
При возникновении события через делегат вызывается обработчик события. Дополнительные сведения см. в разделе Обработка и вызов событий.
Метод OnClosing также позволяет производным классам обрабатывать событие, не присоединяя делегат. Переопределение этого метода является предпочтительным способом обработки события в производном классе.
Внимание!
Методы OnClosed и OnClosing не вызываются при вызове Application.Exit метода для выхода из приложения. Если у вас есть код проверки в любом из этих методов, который необходимо выполнить, следует вызвать Form.Close метод для каждой открытой формы по отдельности перед вызовом Exit метода .
Примечания для тех, кто наследует этот метод
При переопределении метода OnClosing(CancelEventArgs) в производном классе нужно убедиться, что вызывается метод OnClosing(CancelEventArgs) базового класса, чтобы зарегистрированные делегаты получили событие.