В самом начале моей программы я проверяю, могу ли я инициировать соединение с устройством на COM6. Если устройство не найдено, я хочу отобразить MessageBox, а затем полностью завершить программу.Завершить программу после закрытия MessageBox
Вот то, что я до сих пор в Main()
функции исходной программы:
try
{
reader = new Reader("COM6");
}
catch
{
MessageBox.Show("No Device Detected", MessageBoxButtons.OK, MessageBoxIcon.Error)
}
Application.EnableVisualStyles();
Application.SetCompatibleRenderingDefault(false);
Application.Run(new Form1());
Когда я пытаюсь положить Application.Exit();
после команды MessageBox, то MessageBox отображается правильно, если не обнаружено ни одного устройства, но когда я закройте MessageBox, Form1 все еще открывается, но полностью заморожен и не позволит мне закрыть его или щелкнуть любую из кнопок, которые должны дать мне ошибку в любом случае, так как устройство не подключено.
Я просто ищу, чтобы полностью убить программу после отображения MessageBox. Благодарю.
РЕШЕНИЕ: После использования метода return;
после MessageBox закрыл программу бросить курить так же, как я хотел, когда устройство не подключено его. Однако, когда устройство было подключено, у него все еще возникали проблемы после тестирования. Это было то, что я раньше не обнаружил, но это было простое решение. Вот мой полностью рабочий код:
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());
Это было просто. Спасибо за помощь. – VarnerBeast14
В этом ответе следует добавить больше объяснений о том, почему 'Application.Exit()' не работает, как объясняется «Jan Doerrenhaus» –