Qualcuno sa come scoprire se la finestra wpf è stata chiusa dal pulsante "x"?Come sapere se la finestra è stata chiusa dal pulsante "x"?
risposta
Il modo più semplice (secondo me) è di memorizzare un valore booleano che indica se un utente ha chiuso il modulo tramite un altro metodo/i.
Quindi, nell'evento OnClosing, eseguire un controllo per verificare se il valore booleano è falso (a indicare che il pulsante x è stato selezionato).
L'unico problema con questo è il fatto che hai impostato il booleano da solo. Se questo è possibile dipende dall'altro modo in cui l'utente potrebbe chiudere il modulo.
MODIFICA: Devo sottolineare che questo è altamente dipendente dagli altri modi in cui il modulo può essere chiuso. Se hai un numero di metodi che chiudono questa finestra chiamando Window.Close(), vorrei prendere in considerazione la creazione di un singolo metodo chiamato UserClose(), che fa l'impostazione booleana per te.
public void UserClose()
{
NonXClose = true;
this.Close();
}
Ciò consentirà al codice esterno di chiudere la finestra, con l'impostazione del valore booleano.
La differenza è la seguente:
Window.Close() causa WM_CLOSE da inviare alla finestra.
Alt + pulsante F4 e X causa il messaggio WM_SYSCOMMAND con tipo SC_CLOSE. Puoi decidere se inoltrare questo messaggio ulteriormente (e causare WM_CLOSE alla fine).
- 1. Come determinare se la finestra auth2.signIn() di google è stata chiusa dall'utente?
- 2. WPF: impossibile riutilizzare la finestra dopo che è stata chiusa
- 3. Come posso sapere se la connessione è stata misurata?
- 4. System.Net.WebException: La connessione sottostante è stata chiusa: la connessione è stata chiusa in modo imprevisto
- 5. Come verificare se una finestra di apertura è chiusa
- 6. Come sapere se la mia app è stata disinstallata dal dispositivo ...?
- 7. Come posso sapere se è stata caricata Google Visualization
- 8. Come sapere se un'immagine è stata caricata o no? - Paperclip
- 9. Come sapere se una sessione è stata impostata
- 10. Come sapere se JQuery errore significa chiamata è stata interrotta
- 11. Come sapere se una finestra di dialogo viene chiusa in Android?
- 12. SVN: Impossibile leggere la riga di stato: la connessione è stata chiusa dal server
- 13. Perché questa pipa è stata chiusa?
- 14. Come sapere che l'attività è stata completata?
- 15. Come rilevare se un'applicazione OS X è già stata avviata
- 16. Heroku Postgres: questa connessione è stata chiusa
- 17. javascript per verificare quando la finestra del browser è chiusa
- 18. Come posso sapere che NSWindow è stato chiuso utilizzando il pulsante di chiusura?
- 19. Errore nel chiamare HttpClient.GetAsync: La connessione sottostante è stata chiusa
- 20. La connessione Postgres è stata chiusa errore in Spring Boot
- 21. Modo corretto per sapere se un'attività è stata distrutta
- 22. Come posso rilevare quando una porta seriale è stata chiusa dal dispositivo in java?
- 23. Come sapere se un elemento è reso?
- 24. Come si controlla se un'istanza di dominio è stata già chiusa?
- 25. Come posso sapere se una query di dialogo dell'interfaccia utente jquery è stata inizializzata?
- 26. Come verificare se uno stdout è chiusa
- 27. Come sapere se la mia applicazione Android è stata aggiornata per ripristinare un allarme?
- 28. Come posso sapere se la richiesta al servlet è stata eseguita utilizzando HTTP o HTTPS?
- 29. Come faccio a sapere se la mia applicazione non è stata aggiunta al firewall?
- 30. la chiamata è stata respinta dal callee
Potete chiarire? Vuoi distinguere tra premere il pulsante "X" e altri mezzi per chiudere la finestra (cioè la tastiera)? O qualsiasi mezzo per chiudere la finestra? –
distinguere tra premere il tasto "X" e altri mezzi per chiudere la finestra (cioè la tastiera) – Vytas999
Penso che sarebbe utile se spieghi perché vuoi farlo. Per l'utente, non dovrebbe importare se è chiuso dalla X o da una voce di menu. Forse allora possiamo aiutarti a ottenere ciò che vuoi veramente fare –