Form.Closing Olay

Tanım

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 trueayarlayı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 trueCancel 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.

Şunlara uygulanır

Ayrıca bkz.