Supponendo che si stiano chiedendo WinForms, è possibile utilizzare FormClosing() event. L'evento FormClosing() viene attivato ogni volta che un modulo deve essere chiuso.
Per rilevare se l'utente ha fatto clic su X o Chiudi, è possibile visualizzarlo tramite l'oggetto mittente. Prova a trasmettere il mittente come controllo Button e, ad esempio, a verificare forse il suo nome "CloseButton".
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
if (string.Equals((sender as Button).Name, @"CloseButton"))
// Do something proper to CloseButton.
else
// Then assume that X has been clicked and act accordingly.
}
In caso contrario, non ho mai mai avuto bisogno di distinguere se X o CloseButton stato cliccato, come ho voluto realizzare qualcosa di specifico sull'evento FormClosing, come chiudere tutte le MdiChildren prima di chiudere il MDIContainerForm, o l'evento controllando modifiche non salvate . In queste circostanze, non abbiamo bisogno, secondo me, di differenziare da entrambi i pulsanti.
Chiusura per ALT +F4 anche attivare l'evento FormClosing(), come si invia un messaggio al modulo che dice di chiudere. È possibile annullare l'evento impostando il
FormClosingEventArgs.Cancel = true.
Nel nostro esempio, questo si tradurrebbe in essere
e.Cancel = true.
notare la differenza tra il FormClosing() e le FormClosed() eventi.
FormClosing si verifica quando il modulo ha ricevuto il messaggio da chiudere e verifica se ha qualcosa da fare prima che venga chiuso.
FormClosed si verifica quando il modulo è effettivamente chiuso, quindi dopo che è chiuso.
Questo aiuto?
quale pulsante di chiusura intendi? –
Cosa "pulsante Chiudi"? – SLaks
per esempio chiudendo con "ALT + F4" – Bohn