C#MDI表单通过引用传递对象
您好,我已经创建了一个c#MDI应用程序,以使用串行端口(或USB)连接到硬件。我希望每个子表单从MDI#表单实例上创建的串行端口对象写入和接收协议信息C#MDI表单通过引用传递对象,c#,object,global,pass-by-reference,mdi,C#,Object,Global,Pass By Reference,Mdi,您好,我已经创建了一个c#MDI应用程序,以使用串行端口(或USB)连接到硬件。我希望每个子表单从MDI#表单实例上创建的串行端口对象写入和接收协议信息 有没有办法让我的serialPort实例成为项目的全局实例?我只需要一个连接,但所有子窗体都必须能够访问该连接。将serialPort实例声明为公共静态,然后您可以在应用程序中的任何位置访问它。在MDI\u窗体中调用它们时,您应该在所有子窗体中添加另一个构造函数使用重载构造函数 在所有子窗体中添加第二个构造函数 public partial c
有没有办法让我的serialPort实例成为项目的全局实例?我只需要一个连接,但所有子窗体都必须能够访问该连接。将serialPort实例声明为公共静态,然后您可以在应用程序中的任何位置访问它。在MDI\u窗体中调用它们时,您应该在所有子窗体中添加另一个构造函数使用重载构造函数 在所有子窗体中添加第二个构造函数
public partial class ChildForm : Form
{
private Port _port = new Port();
public ChildForm()
{
InitializeComponent();
}
public ChildForm(Port port) : this()
{
_port = port;
}
...
}
在MDI_表单中调用时使用此重载
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();
}
...
}