Come posso ottenere il mio modulo di Windows per fare qualcosa quando è chiuso.C# Windows Form: On Close Do [Processo]
risposta
Gestire l'evento FormClosed
.
Per fare ciò, andare alla scheda Eventi nella finestra Proprietà e fare doppio clic sull'evento FormClosed
per aggiungere un gestore per esso.
È quindi possibile inserire il codice nel gestore MyForm_FormClosed
generato.
È inoltre possibile ignorare il metodo OnFormClosed
; per farlo, digitare override onformcl
nella finestra del codice e OnFormClosed
da IntelliSense.
Se si desidera impedire la chiusura del modulo, gestire invece l'evento FormClosing
e impostare e.Cancel
su true
.
Aggiungere un gestore eventi all'evento FormClosed per il proprio modulo.
public class Form1
{
public Form1()
{
this.FormClosed += MyClosedHandler;
}
protected void MyClosedHandler(object sender, EventArgs e)
{
// Handle the Event here.
}
}
Evento obsoleto – Ian
@Ian - Risolto. –
WinForms ha due eventi che potresti voler guardare.
Il primo, l'evento FormClosing
, si verifica prima che il modulo sia effettivamente chiuso. In questo caso, puoi ancora accedere a qualsiasi controllo e variabile nella classe del modulo. È inoltre possibile annullare la chiusura del modulo impostando e.Cancel = true;
(dove e
è un System.Windows.Forms.FormClosingEventArgs
inviato come secondo argomento a FormClosing
).
Il secondo, l'evento FormClosed
, si verifica dopo la chiusura del modulo. A questo punto, non è possibile accedere a tutti i controlli presenti nel modulo, sebbene sia ancora possibile eseguire la pulizia delle variabili (come la chiusura delle risorse gestite).
Aggiornato per usare 'FormClosing' e' FormClosed' come 'Closing' e' Closed' sono deprecati. – Powerlord
Plus 2 per sapere acutalmente cosa lo hai aggiornato da e verso. – AidanO
È sicuramente "tutte le variabili" e anche i controlli sul modulo?Ho provato proprio ora e ho fatto riferimento a 2 campi della classe Form che ho (ereditato da Form) e si potrebbe accedere bene - nell'evento FormClosed – PandaWood
public FormName()
{
InitializeComponent();
this.FormClosed += FormName_FormClosed;
}
private void FormName_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
//close logic here
}
O un'altra alternativa è quella di sostituire i metodi OnFormClosed() o OnFormClosing() da System.Windows.Forms.Form.
Se è necessario utilizzare questo metodo dipende dal contesto del problema ed è più utilizzabile quando il modulo verrà sottoposto a sottoclassi diverse volte e tutti dovranno eseguire lo stesso codice.
Gli eventi sono più utili per una o due istanze se si sta facendo la stessa cosa.
public class FormClass : Form
{
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
// Code
}
}
Sintassi:
form_name.ActiveForm.Close();
Esempio:
{
Form1.ActiveForm.close();
}
- 1. Windows Form Windows - intercettazione dell'evento Close X
- 2. javascript on window close event
- 3. JFrame On Close Operation
- 4. Gnuplot exit on window close
- 5. C# close standard out
- 6. MessageBox on Form Closing
- 7. jQuery Datepicker - close on input click
- 8. windows 7 phone - close keyboard
- 9. Launch System Screensaver da C# Windows Form
- 10. C# Windows Form Immagine di sfondo trasparente
- 11. C# Windows Form Le applicazioni in Mac
- 12. Passaggio di valori tra Windows Form C#
- 13. C#, Windows Form, Messagebox in cima non funziona
- 14. Dispose/Close ExchangeService in C#?
- 15. Windows Form: cattura MouseWheel
- 16. Ottenere un controllo Windows Form per nome in C#
- 17. Quali sono le differenze tra il processo kill e il processo close?
- 18. Passaggio da Windows Form a Web Form
- 19. Aggiorna etichetta durante l'elaborazione in Windows Form
- 20. Windows Form - ErrorProvider + DataGridView
- 21. Windows Form "Foro"
- 22. evidenziazione etichette Windows Form
- 23. pipe UNIX on C block on read
- 24. Abbellimento di un'applicazione Windows Form
- 25. Transizione tra l'elemento close close close
- 26. Mappe con applicazione Windows Form
- 27. Clic controllo utente - Windows Form
- 28. Drupal Dynamic Select on a Form
- 29. Come cancellare p: messaggio da p: dialog on close?
- 30. cosa sono <form action = "#"> e <form method = "post" action = "#> do?
non c'è nessun caso "Chiuso", solo "FormClosed" - molto poco intuitivo –
@hello_earth: C'è stato un evento 'Closed' in .Net 1; è stato sostituito in. Net 2.0 a causa di vari problemi. L'evento 'Closed' originale è ancora lì per compatibilità, ma è nascosto. – SLaks