检测当前打开的串口是否不存在,或者已经关闭
检测到当前串口关闭,无论那个串口,首先获取当前串口列表,比对是否是当前打开的串口号
如果是则改变相应的文字说明和选项,关闭串口的提示图片,重新扫描串口,在扫描可用串口 (参考串口扫描)中可以自动加载第一个串口号
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x219) //设备改变
{
if (!serialPort1.IsOpen)
{
bool Flag = true;
string[] Serial_Name = SerialPort.GetPortNames(); //获取当前串口列表
for (int i = 0; i < Serial_Name.Length; i++)
{
if (serialPort1.PortName == Serial_Name[i])
{
Flag = false;
}
}
if (Flag == true)
{
button1.Text = "打开串口";
//关闭串口提示灯
pictureBox1.Image = Properties.Resources.ICON_NOT;
USART_Scan(serialPort1, comboBox1); //设备改变时重新获取串口列表
}
}
}
base.WndProc(ref m);
}
个人见解,感谢阅读。