Form.Closing Evento

Definizione

Si verifica quando il form viene chiuso.Occurs when the form is closing.

public:
 event System::ComponentModel::CancelEventHandler ^ Closing;
[System.ComponentModel.Browsable(false)]
public event System.ComponentModel.CancelEventHandler Closing;
member this.Closing : System.ComponentModel.CancelEventHandler 
Public Custom Event Closing As CancelEventHandler 
Attributi

Esempi

Nell'esempio seguente viene usato Closing per verificare se il testo in una TextBox è stato modificato.The following example uses Closing to test if the text in a TextBox has changed. In caso contrario, all'utente viene chiesto se salvare le modifiche in un file.If it has, the user is asked whether to save the changes to a 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 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

Commenti

Attenzione

L'evento Closing è obsoleto a partire da .NET Framework 2,0; in alternativa, usare l'evento FormClosing.The Closing event is obsolete starting with the .NET Framework 2.0; use the FormClosing event instead.

L'evento Closing si verifica quando il form viene chiuso.The Closing event occurs as the form is being closed. Quando un modulo viene chiuso, tutte le risorse create all'interno dell'oggetto vengono rilasciate e il modulo viene eliminato.When a form is closed, all resources created within the object are released and the form is disposed. Se si annulla questo evento, il form rimane aperto.If you cancel this event, the form remains opened. Per annullare la chiusura di un form, impostare la proprietà Cancel della CancelEventArgs passata al gestore eventi per true.To cancel the closure of a form, set the Cancel property of the CancelEventArgs passed to your event handler to true.

Quando un form viene visualizzato come finestra di dialogo modale, facendo clic sul pulsante Chiudi (il pulsante con una X nell'angolo in alto a destra del form) il form viene nascosto e la proprietà DialogResult è impostata su DialogResult.Cancel.When a form is displayed as a modal dialog box, clicking the Close button (the button with an X at the upper-right corner of the form) causes the form to be hidden and the DialogResult property to be set to DialogResult.Cancel. È possibile eseguire l'override del valore assegnato alla proprietà DialogResult quando l'utente fa clic sul pulsante Chiudi impostando la proprietà DialogResult in un gestore eventi per l'evento Closing del modulo.You can override the value assigned to the DialogResult property when the user clicks the Close button by setting the DialogResult property in an event handler for the Closing event of the form.

Nota

Quando viene chiamato il metodo Close su un Form visualizzato come finestra non modale, non è possibile chiamare il metodo Show per rendere visibile il form, perché le risorse del modulo sono già state rilasciate.When the Close method is called on a Form displayed as a modeless window, you cannot call the Show method to make the form visible, because the form's resources have already been released. Per nascondere un form e renderlo visibile, usare il metodo Control.Hide.To hide a form and then make it visible, use the Control.Hide method.

Attenzione

Gli eventi Form.Closed e Form.Closing non vengono generati quando viene chiamato il metodo Application.Exit per uscire dall'applicazione.The Form.Closed and Form.Closing events are not raised when the Application.Exit method is called to exit your application. Se si dispone di codice di convalida in uno di questi eventi che devono essere eseguiti, è consigliabile chiamare il metodo Form.Close per ogni form aperto singolarmente prima di chiamare il metodo Exit.If you have validation code in either of these events that must be executed, you should call the Form.Close method for each open form individually before calling the Exit method.

Se il form è un form padre MDI, gli eventi Closing di tutti i form figlio MDI vengono generati prima che venga generato l'evento Closing del form padre MDI.If the form is an MDI parent form, the Closing events of all MDI child forms are raised before the MDI parent form's Closing event is raised. Inoltre, vengono generati gli eventi Closed di tutti i form figlio MDI prima che venga generato l'evento Closed del form padre MDI.In addition, the Closed events of all MDI child forms are raised before the Closed event of the MDI parent form is raised. L'annullamento dell'evento Closing di un form figlio MDI non impedisce la generazione dell'evento Closing del form padre MDI.Canceling the Closing event of an MDI child form does not prevent the Closing event of the MDI parent form from being raised. Tuttavia, l'annullamento dell'evento verrà impostato su true la proprietà Cancel del CancelEventArgs passato come parametro al form padre.However, canceling the event will set to true the Cancel property of the CancelEventArgs that is passed as a parameter to the parent form. Per forzare la chiusura di tutti i form padre e figlio MDI, impostare la proprietà Cancel su false nel form padre MDI.To force all MDI parent and child forms to close, set the Cancel property to false in the MDI parent form.

Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.For more information about handling events, see Handling and Raising Events.

Si applica a

Vedi anche