我試圖寫,其利用組合框以顯示從以下方法獲得的當前連接COM端口的程序:添加/ C#中從ComboBox卸下COM端口
System.IO.Ports.SerialPort.GetPortNames()
的想法是來初始化線程每秒鐘檢查當前可用的COM端口,並相應地更新組合框。儘管我盡了最大努力,但我無法實現它的目標。
的代碼更新組合框的內容如下:
private void Form1_Load(object sender, EventArgs e)
{
availPorts = new BindingList<String>();
Thread t = new Thread(new ThreadStart(update));
t.Start();
}
private void update()
{
this.comboBox1.DataSource = availPorts;
while (true)
{
Console.WriteLine("CHECK");
foreach (String port in System.IO.Ports.SerialPort.GetPortNames())
{
if (!availPorts.Contains(port))
{
Console.WriteLine("FOUND");
availPorts.Add(port);
}
}
Thread.Sleep(1000);
}
}
我可以看到控制檯消息的端口被發現,但組合框保留爲空。任何幫助將不勝感激。
您是否將availPorts與ComboBox綁定? – longbkit
'this.comboBox1.DataSource = availPorts;' 這不是綁定語句嗎? – isometrik
當您在Load事件中創建一個新的時不會。 –