Na samym początku mojego programu sprawdzam, czy mogę zainicjować połączenie z urządzeniem na COM6. Jeśli urządzenie nie zostanie znalezione, chcę wyświetlić MessageBox, a następnie całkowicie zakończyć program.Program końcowy po zamknięciu MessageBox
Oto co mam do tej pory w funkcji Main()
początkowego programu:
try
{
reader = new Reader("COM6");
}
catch
{
MessageBox.Show("No Device Detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
}
Application.EnableVisualStyles();
Application.SetCompatibleRenderingDefault(false);
Application.Run(new Form1());
gdy próbuję oddanie Application.Exit();
po komendzie MessageBox, wyświetlacze MessageBox poprawnie, gdy zostanie wykryty żadne urządzenie, ale kiedy zamknij MessageBox, Form1 nadal się otwiera, ale jest całkowicie zamrożony i nie pozwoli mi go zamknąć ani kliknąć żadnego z przycisków, które powinny dać mi błąd, ponieważ urządzenie nie jest podłączone.
Po prostu szukam, żeby całkowicie zabić program po wyświetleniu okna MessageBox. Dzięki.
ROZWIĄZANIE: Po użyciu metody return;
po MessageBox zamknięty program rzucić tak jak chciałem, gdy urządzenie nie zostało podłączone go. Jednakże, gdy urządzenie było podłączone, nadal miało problemy z odczytem po przetestowaniu. To było coś, czego wcześniej nie odkryłem, ale było to proste rozwiązanie. Oto mój w pełni działający kod:
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());
To było proste. Dzięki za pomoc. – VarnerBeast14
Ta odpowiedź powinna dodać więcej wyjaśnień, dlaczego 'Application.Exit()' nie działa zgodnie z wyjaśnieniami 'Jan Doerrenhaus' –