嗨,我创建了一个 c# MDI 应用程序以使用串行端口(或 USB)连接到硬件。我希望每个Child_Form从MDI_Form实例上创建的Serial_port对象写入和接收协议信息。
有没有办法让我的 serialPort 实例全局到我的项目中?我只需要一个连接,但所有子窗体都必须有权访问该连接。
将
serialPort 实例声明为公共静态实例,然后您可以在应用程序中的任何位置访问它。
您应该在所有子窗体中添加另一个构造函数,当调用它们使用重载构造函数时MDI_Form。
在所有子窗体中添加第二个构造函数
public partial class ChildForm : Form
{
private Port _port = new Port();
public ChildForm()
{
InitializeComponent();
}
public ChildForm(Port port) : this()
{
_port = port;
}
...
}
在MDI_Form调用时使用此重载
public partial class MDI_Form : Form
{
private Port _port = new Port();
...
private void ChildToolStripMenuItem_Click(object sender, EventArgs e)
{
ChildForm cf = new ChildForm(_port);
cf.MdiParent = this;
cf.Show();
}
...
}