c#多种形式之间的序列访问



我有两种形式。form1和form2。serialport变量在form1.cs

中声明
    public SerialPort COM = null;
    public SerialPort GetCOMM
    {
        get { return COM; }
    }

我需要从form2访问该变量。(Form1创建Form2)
尝试访问这些方式

Form1 f1 = new Form1();
int result = myfunction(f1.GETCOMM);
int result = myfunction(f1.COM);

,它行不通。我做错了什么?

我会亲自创建一种将serialport作为参数的方法,这样,它不必对form1进行引用。我会做这样的事情。或者,您可以创建一个自定义构造函数,例如jaminator对form2的评论,该构造将接收到serialport作为参数

form1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2();
        frm2.setSerialPort(serialPort1);
        frm2.Show();
    }
}

form2

public partial class Form2 : Form
{
    SerialPort myPort;
    public Form2()
    {
        InitializeComponent();
    }
    public void setSerialPort(SerialPort port)
    {
        myPort = port; 
    }
}

使用自定义构造函数的第二个选项

form1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2(serialPort1);
        frm2.Show();
    }
}

form2

public partial class Form2 : Form
{
    SerialPort myPort;
    public Form2( SerialPort port)
    {
        InitializeComponent();
        myPort = port; 
    }
}

如果两种表单都是同一应用的一部分,则可以将静态serialport对象放在程序中。然后通过program.serialport

将其调用。

相关内容

  • 没有找到相关文章