Ganz am Anfang meines Programms überprüfe ich, ob ich eine Verbindung mit einem Gerät an COM6 herstellen kann. Wenn das Gerät nicht gefunden wird, möchte ich eine MessageBox anzeigen und das Programm dann vollständig beenden.Programm beenden, nachdem MessageBox geschlossen ist
Hier ist, was ich bisher in der Main()
Funktion des ursprünglichen Programms habe:
try
{
reader = new Reader("COM6");
}
catch
{
MessageBox.Show("No Device Detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
}
Application.EnableVisualStyles();
Application.SetCompatibleRenderingDefault(false);
Application.Run(new Form1());
Wenn ich versuche, ein Application.Exit();
nach dem MessageBox Befehl setzen, richtig die MessageBox angezeigt, wenn kein Gerät erkannt wird, aber wenn ich schließe die MessageBox, Form1 bleibt geöffnet, ist aber vollständig eingefroren und lässt mich nicht schließen oder auf einen der Buttons klicken, die mir sowieso einen Fehler melden sollten, da das Gerät nicht verbunden ist.
Ich bin nur auf der Suche nach weg, um das Programm vollständig zu beenden, nachdem die MessageBox angezeigt wird. Vielen Dank.
LÖSUNG: Nach der Verwendung der return;
Methode nach der MessageBox geschlossen das Programm beendet, so wie ich es wollte, wenn das Gerät nicht angeschlossen war. Wenn das Gerät jedoch angeschlossen wurde, traten nach dem Test immer noch Probleme beim Lesen auf. Das war etwas, das ich vorher nicht entdeckt hatte, aber es war eine einfache Lösung. Hier ist mein voll funktionierenden Code:
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());
Das war einfach. Danke für die Hilfe. – VarnerBeast14
Diese Antwort sollte mehr erklären, warum 'Application.Exit()' nicht funktionierte, wie von 'Jan Doerrenhaus' erklärt –