在我的程序的最开始,我正在检查是否可以在COM6上启动与设备的连接.如果找不到设备,那么我想显示一个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关闭程序后退出的方法就像我想要的那样,当设备没有插入它时.但是,当设备插入时,测试后仍然有读取问题.这是我以前没有发现的东西,但这是一个简单的修复.这是我完全正常工作的代码:
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",MessageBoxIcon.Error) return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1());