我正在使用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();
}
答案 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中的端口也将关闭(因为它是相同的对象)!