Form.Closing Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando il form viene chiuso.
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
Tipo evento
- Attributi
Esempio
Nell'esempio seguente viene Closing usato per verificare se il testo in un oggetto TextBox è stato modificato. In caso affermativo, all'utente viene chiesto se salvare le modifiche apportate a un 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. Usare invece l'evento FormClosing .
L'evento Closing si verifica quando il modulo viene chiuso. Quando un modulo viene chiuso, tutte le risorse create all'interno dell'oggetto vengono rilasciate e il modulo viene eliminato. Se si annulla questo evento, il modulo rimane aperto. Per annullare la chiusura di un modulo, impostare la Cancel proprietà dell'oggetto CancelEventArgs passato al gestore eventi su true
.
Quando un modulo viene visualizzato come finestra di dialogo modale, facendo clic sul pulsante Chiudi (il pulsante con una X nell'angolo superiore destro del modulo) la maschera viene nascosta e la DialogResult proprietà deve essere impostata su DialogResult.Cancel
. È possibile eseguire l'override del valore assegnato alla DialogResult proprietà quando l'utente fa clic sul pulsante Chiudi impostando la DialogResult proprietà in un gestore eventi per l'evento Closing del modulo.
Nota
Quando il Close metodo viene chiamato su una Form finestra visualizzata come finestra senza modalità, non è possibile chiamare il Show metodo per rendere visibile il modulo, perché le risorse del modulo sono già state rilasciate. Per nascondere un modulo e renderlo visibile, usare il Control.Hide metodo .
Attenzione
Gli Form.Closed eventi e Form.Closing non vengono generati quando viene chiamato il Application.Exit metodo per uscire dall'applicazione. Se si dispone di codice di convalida in uno di questi eventi che devono essere eseguiti, è necessario chiamare il Form.Close metodo per ogni modulo aperto singolarmente prima di chiamare il Exit metodo .
Se il modulo è un modulo padre MDI, gli Closing eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento del Closing modulo padre MDI. Inoltre, gli Closed eventi di tutti i moduli figlio MDI vengono generati prima che venga generato l'evento Closed del form padre MDI. L'annullamento dell'evento Closing di un modulo figlio MDI non impedisce la generazione dell'evento Closing del modulo padre MDI. Tuttavia, l'annullamento dell'evento verrà impostato sulla true
Cancel proprietà dell'oggetto CancelEventArgs passato come parametro al modulo padre. Per forzare la chiusura di tutti i moduli padre e figlio MDI, impostare la Cancel proprietà su false
nel modulo padre MDI.
Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.