将其调用。
我有两种形式。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