0

フォーム読み込みイベントに次のコードを記述しました。フォームがロードされると、利用可能なシリアルポートがコンボボックスに追加されます。

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

次のステップでは、コンボボックスの 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の詳細のみを返します).Plsは、コンボボックスで選択したポートの詳細を取得するのに役立ちます.

4

1 に答える 1

0

ここで議論に従ってください

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

その中の続きを読む

SerialPort タイプから情報を取得できません。アプリケーションでこの情報が必要な理由がわかりません。ただし、 あなたと同じ質問を持つ解決済みのスレッドがあります。そこでコードをチェックアウトして、役立つかどうかを確認できます。

于 2013-03-22T07:26:06.967 に答える