嗨我創建了ac#MDI應用程序連接到硬件使用串行端口(或USB)。我希望每個Child_Form寫入和接收來自MDI_Form上創建的Serial_port對象的協議信息實例。C#MDI窗體傳遞對象通過引用
有沒有一種方法我可以如何讓我的serialPort實例全局到我的項目?我只想要一個連接,但所有子窗體都必須有權訪問連接。
嗨我創建了ac#MDI應用程序連接到硬件使用串行端口(或USB)。我希望每個Child_Form寫入和接收來自MDI_Form上創建的Serial_port對象的協議信息實例。C#MDI窗體傳遞對象通過引用
有沒有一種方法我可以如何讓我的serialPort實例全局到我的項目?我只想要一個連接,但所有子窗體都必須有權訪問連接。
將serialPort實例聲明爲public static,那麼您可以在應用程序中的任何位置訪問它。
您應該在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();
}
...
}