Fondamentalmente ho un modulo principale che al momento del caricamento apre un modulo figlio per l'accesso dell'utente. Quando annullano o chiudono questo modulo di accesso, devo chiudere l'intera applicazione.Qual è la differenza tra questi metodi per chiudere la mia domanda?
Ma sembra che ci sia un paio di modi diversi per chiudere un programma C#:
Application.Exit();
Application.ExitThread();
Environment.Exit(1);
Process.GetCurrentProcess().Kill();
SFTPClient.LDAPLoggedIn = false; Close();
EDIT: Scusate se questo non è chiaro: si imposta una proprietà in un oggetto di controllo per indicare che l'accesso non è riuscito. Dopo aver aperto il modulo figlio, vorrei controllare questa proprietà nel modulo padre per vedere se il programma dovrebbe continuare o meno. In pratica sposta la responsabilità di uscire dal programma verso il genitore senza eccezioni.
6: throw new Exception("User closed the form");
Posso vedere che ci sono due modi di gestirlo:
- Informare il genitore che qualcosa è andato storto (come in 5 e 6.)
- chiusura del programma dal modulo figlio.
L'una o l'altra di queste due è considerata una pratica migliore?
Ogni approccio sembra avere lo stesso effetto sul mio programma ma come si confronta effettivamente?
UPDATE: Grazie per le risposte. Per coloro che cercano a questa domanda in futuro le persone e curiosi, questa è stata la mia soluzione, alla fine:
private void FormMain_Load(object sender, EventArgs e)
{
if (new FormLogin().ShowDialog(this) == DialogResult.Cancel) Close();
}
e:
private void buttonCancel_Click(object sender, EventArgs e)
{
Close();
}
ho scoperto che quando un form viene chiuso tramite clic sulla 'X' , DialogResult è impostato su Annulla automaticamente, quindi tutto ciò che devo fare è Close()
Mi dispiace - per chiarire # 5. Imposta una proprietà in un oggetto controller per indicare che l'accesso non è riuscito. Dopo aver aperto il modulo figlio, vorrei controllare questa proprietà nel modulo padre per vedere se il programma dovrebbe continuare o meno. In pratica sposta la responsabilità di uscire dal programma verso il genitore senza eccezioni. – Nobody
@ rmx - DEFINITAMENTE # 5 quindi, senza dubbio. –