All'inizio del mio programma, sto verificando se posso avviare una connessione con un dispositivo su COM6. Se il dispositivo non viene trovato, desidero visualizzare un MessageBox e quindi terminare completamente il programma.Fine programma dopo MessageBox è chiuso
Ecco quello che ho finora nella funzione Main()
del programma iniziale:
try
{
reader = new Reader("COM6");
}
catch
{
MessageBox.Show("No Device Detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
}
Application.EnableVisualStyles();
Application.SetCompatibleRenderingDefault(false);
Application.Run(new Form1());
Quando provo mettere un Application.Exit();
dopo il comando MessageBox, i display MessageBox correttamente quando viene rilevato nessun dispositivo, ma quando chiude il MessageBox, Form1 si apre ancora, ma è completamente congelato e non mi permette di chiuderlo o fare clic su uno dei pulsanti che dovrebbero darmi comunque un errore poiché il dispositivo non è connesso.
Sto cercando solo di eliminare il programma completamente dopo la visualizzazione del MessageBox. Grazie.
SOLUZIONE: Dopo aver utilizzato il metodo return;
dopo il MessageBox ha chiuso il programma di smettere proprio come avrei voluto quando il dispositivo non è stato collegato esso. Tuttavia, quando il dispositivo è stato collegato, ha avuto ancora problemi di lettura dopo il test. Questo era qualcosa che non avevo scoperto prima, ma era una soluzione semplice. Ecco il mio codice completamente funzionante:
try
{
test = new Reader("COM6");
test.Dispose(); //Had to dispose so that I could connect later in the program. Simple fix.
}
catch
{
MessageBox.Show("No device was detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Era semplice. Grazie per l'aiuto però. – VarnerBeast14
Questa risposta dovrebbe aggiungere ulteriori spiegazioni sul perché 'Application.Exit()' non ha funzionato come spiegato da 'Jan Doerrenhaus' –