2016-06-10 42 views
-2

嗨我創建了ac#MDI應用程序連接到硬件使用串行端口(或USB)。我希望每個Child_Form寫入和接收來自MDI_Form上創建的Serial_port對象的協議信息實例。C#MDI窗體傳遞對象通過引用

有沒有一種方法我可以如何讓我的serialPort實例全局到我的項目?我只想要一個連接,但所有子窗體都必須有權訪問連接。

回答

0

將serialPort實例聲明爲public static,那麼您可以在應用程序中的任何位置訪問它。

0

您應該在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(); 
    } 

    ... 
}