Form.Closing Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Form kapatılırken gerçekleşir.
public:
event System::ComponentModel::CancelEventHandler ^ Closing;
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler? Closing;
member this.Closing : System.ComponentModel.CancelEventHandler
[<System.ComponentModel.Browsable(false)>]
member this.Closing : System.ComponentModel.CancelEventHandler
Public Custom Event Closing As CancelEventHandler
Olay Türü
- Öznitelikler
Örnekler
Aşağıdaki örnek, içindeki TextBox metnin değişip değişmediğini test etmek için kullanırClosing. Varsa, kullanıcıdan değişiklikleri bir dosyaya kaydedip kaydetmediği sorulur.
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
Açıklamalar
Dikkat
OlayClosing, .NET Framework 2.0'dan başlayarak kullanımdan kaldırıldı; bunun yerine olayı kullanınFormClosing.
Form Closing kapatılırken olay gerçekleşir. Form kapatıldığında, nesne içinde oluşturulan tüm kaynaklar serbest bırakılır ve form atılır. Bu olayı iptal ederseniz form açık kalır. Formun kapatılmasını iptal etmek için olay işleyicinize geçirilen öğesinin CancelEventArgs özelliğini olarak true
ayarlayınCancel.
Form kalıcı bir iletişim kutusu olarak görüntülendiğinde, Kapat düğmesine (formun sağ üst köşesinde X işareti bulunan düğme) tıklandığında form gizlenir ve DialogResult özelliği olarak ayarlanır DialogResult.Cancel
. Kullanıcı, formun DialogResult olayı için bir olay işleyicisinde Closing özelliğini ayarlayarak DialogResultKapat düğmesine tıkladığında özelliğe atanan değeri geçersiz kılabilirsiniz.
Not
Close Yöntem, modsuz pencere olarak görüntülenen bir Form pencerede çağrıldığında, formun Show kaynakları zaten serbest bırakıldığından, formu görünür hale getirmek için yöntemini çağıramazsınız. Bir formu gizlemek ve görünür hale getirmek için yöntemini kullanın Control.Hide .
Dikkat
Form.Closed uygulamanızdan çıkmak için yöntemi çağrıldığında Application.Exit ve Form.Closing olayları tetiklenmez. Bu olaylardan birinde yürütülmesi gereken doğrulama kodunuz varsa, yöntemini çağırmadan önce her açık form için yöntemini ayrı ayrı çağırmanız Form.CloseExit gerekir.
Form bir MDI üst formuysa, Closing MDI üst formunun olayı tetikilmeden önce tüm MDI alt formlarının Closing olayları tetiklenir. Ayrıca, Closed MDI üst formu olayı tetiklenmeden önce Closed tüm MDI alt formlarının olayları tetiklenir. Bir MDI alt formunun olayını iptal etmek Closing , MDI üst formunun olayının tetiklenmesini engellemez Closing . Ancak, olayı iptal etmek üst forma true
Cancel parametre olarak geçirilen özelliğini CancelEventArgs olarak ayarlanır. Tüm MDI üst ve alt formlarını kapanmaya zorlamak için MDI üst formunda özelliğini olarak false
ayarlayınCancel.
Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.