通过使用c#更改端口值来获取特定的串行端口信息

本文关键字:获取 信息 串行端口 | 更新日期: 2023-09-27 18:05:20

我在form load事件中编写了以下代码。当加载表单时,可用的串行端口被添加到组合框中。

 String[] ports = SerialPort.GetPortNames();    
private void Form1_Load(object sender, EventArgs e)
    {
        _serialPort = new SerialPort();
        foreach (string port in ports)
          {
            cbox.Items.Add(port);
          }
    }

在下一步中,在combobox selectedindex_changed事件中,当我更改端口时,端口详细信息将在多行文本框中更新。

 private void cbox_SelectedIndexChanged(object sender, EventArgs e)
      {
          using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
          {
              var prts = searcher.Get().Cast<ManagementBaseObject>().ToList();
              var tList = (from n in ports
                           join p in prts on n equals p["DeviceID"].ToString()
                           select n + " - " + p["Caption"]).ToList();
              foreach (string s in tList)
              {
               mtxt.AppendText(s);  // multiline textbox
              }
          }
      }
例如

:在这个程序中,端口添加到组合框从(COM3到comX)。但我的问题是,无论我选择的端口,它只返回从组合框的第一个端口的详细信息(即它只返回COM3的详细信息)。请任何人帮助我获得端口的详细信息,我选择在组合框。

通过使用c#更改端口值来获取特定的串行端口信息

继续讨论

http://social.msdn.microsoft.com/forums/en - us/winformsdesigner/thread/c236cac4 a954 - 4 - a70 - 882 d - bc20e2cc6e81

我们不能通过SerialPort类型获得信息。我不知道为什么在应用程序中需要这些信息。然而,有一个问题解决了和你一样的问题。您可以查看代码好了,看看能不能帮到你。