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

时间:2016-05-17 08:16:37

标签: c# winforms serial-port

我正在使用serialport。我有两个窗口形式,我需要在两种形式中使用serialPort。如何将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();
        }

2 个答案:

答案 0 :(得分:1)

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

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

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

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

依据form2 serialPort2获取form1 serialPort1

的所有属性

答案 1 :(得分:0)

将端口传递给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中的端口也将关闭(因为它是相同的对象)!