如何将串口作为参数从一个 window 表单发送到另一个 window 表单?

How to send a serialport as a parameter from one window form to another window form?

我正在使用串口。我有两个 window 表单,我需要在这两个表单中使用 serialPort。如何将串行端口作为参数从一种形式发送到第二种形式?我的代码如下所示:

namespace SimpleSerial
{
  public partial class Form1 : Form
  {
    Form2 pp = new Form2()

      public Form1()
      {
        InitializeComponent();
        pp.ShowDialog();
      }
      private void buttonStart_Click(object sender, EventArgs e)
      {
        serialPort1.PortName = "Com3";       
        serialPort1.BaudRate = 9600;

第二形式的代码:

namespace SimpleSerial
{
  public partial class Form2 : Form
    {
      public Form2()
        {
          InitializeComponent();
          getAvailablePorts();
        }

通过 Form2 的构造函数传递端口:

public partial class Form2 : Form
{
  private readonly SerialPort Port;
  public Form2(SerialPort Port)
  {
    InitializeComponent();
    this.Port = Port;
  }
}

现在您可以在 Form2 中使用端口了。

在您的 Form1 中创建 Form2 时,像这样传递端口:

public partial class Form1 : Form
{
  private SerialPort Port;
  public Form1()
  {
    InitializeComponent();
    Port = new SerialPort();
    Form2 pp = new Form2(Port);
    pp.ShowDialog();
  }
}

请注意,对象在 C# 中通过引用传递。这意味着,如果您关闭 Form1 中的端口,则 Form2 中的端口也会关闭(因为它是同一个对象)!

首先在form2中创建参数化构造函数为

public Form2(SerialPort SP)
{
     InitializeComponent();
     serialPort2 = SP;
}

现在将 SerialPort 从 form1 传递到 form2 作为

Form2 frm = new Form2(serialPort1);
frm.ShowDialog();

so on form2 serialPort2 将获得 form1 serialPort1

的所有属性