在我的程序開始時,我正在檢查是否可以啓動與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());
當我嘗試在MessageBox命令後把一個Application.Exit();
,MessageBox中顯示未檢測到設備正常工作時,但是當我關閉MessageBox,Form1仍然打開,但是完全凍結,並且不會讓我關閉它,或者單擊任何因爲設備未連接而應該給我一個錯誤的按鈕。
我只是在MessageBox顯示完後才找到完整的程序。謝謝。
SOLUTION:在MessageBox關閉程序後使用return;
方法後,退出程序就像我想在設備未插入時一樣。但是,當設備插入時,測試之後仍然存在讀取問題。這是我以前沒有發現的東西,但這是一個簡單的修復。這是我的全部工作代碼:
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'所解釋的那樣工作的解釋。 –