string[] str = SerialPort.GetPortNames();
if (str == null)
{
MessageBox.Show("本機沒有串口!", "資訊提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//添加串口專案
foreach (string s in System.IO.Ports.SerialPort.GetPortNames())
{
//獲取有多少個COM口
cbSerial.Items.Add(s);
}
//串口設定默認選擇項
//設定cbSerial的默認選項
cbSerial.SelectedIndex = 0;
serialPort.BaudRate = 9600;
串口檢查那里不行啊,沒插串口的時候不會提示,還會報錯

把cbSerial.SelectedIndex=0改成-1的話可以運行,但自動檢查COM口就不是默認位置了,要手動調。
問題主要是為什么它不能檢測到沒插串口?
uj5u.com熱心網友回復:
string[] str = SerialPort.GetPortNames(); 不會回傳null啊,你應該判斷str.Length<1uj5u.com熱心網友回復:

使用一個方法之前,有時間可以看看源代碼
uj5u.com熱心網友回復:
string[] str = SerialPort.GetPortNames();if (str == null )
{
MessageBox.Show("本機沒有串口!", "資訊提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
//添加串口專案
foreach (string s in System.IO.Ports.SerialPort.GetPortNames())
{
//獲取有多少個COM口
cbSerial.Items.Add(s);
}
if(cbSerial.Items.count > 0)
{
//串口設定默認選擇項
//設定cbSerial的默認選項
cbSerial.SelectedIndex = 0;
serialPort.BaudRate = 9600;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/48094.html
標籤:C#
