我正在設計一個windows用戶窗體,通過串行端口與微控制器進行交互。以多種形式使用串行端口的方法
GUI包含多個用戶表單,它們將使用相同的串行端口。我研究瞭如何做到這一點,我發現了不同的想法。有些我不知道它是否適用於其他人,我不知道如何在代碼中實現它。比方說,我有
Form1中:Start.vb 窗體2:Shield1.vb
1)我可以聲明串口在啓動窗體爲:
Public Shared SerialPort1 As New System.IO.Ports.SerialPort
而在其他使用它形式 ?
2)第一備選方案:使用一個模塊聲明一個新的SerialPort
Module Module1
Public WithEvents mySerialPort1 As New IO.Ports.SerialPort
Private Sub mySerialPort1_DataReceived(sender As Object, _
e As System.IO.Ports.SerialDataReceivedEventArgs) _
Handles mySerialPort1.DataReceived
End Sub
End Module
這是方法嗎?如果是,我如何在表格的代碼中使用它?如何在表單的代碼中包含DataReceived事件?
3)第二替代:通過一個串口在開始形式的構造,然後將數據傳遞到其他形式,如在此後mentionned:Alternate Solution 1
private void OnSetup(object sender, EventArgs e)
{
this.port = new SerialPort(...);
// TODO: initialize port
Form2 f2 = new Form2(this.port);
f2.Show();
Form3 f3 = new Form3(this.port);
f3.Show();
Form4 f4 = new Form4(this.port);
f4.Show();
}
然後事件也包括?我如何使用它們?
4)第三種選擇:使用像這樣的解決方案做了一個靜態類: Alternate Solution 2
是用C#這裏右邊的代碼?我正在VB.net編寫我的程序,但我可以把它作爲參考。
哪個是初學者推薦的解決方案?如果您有其他建議或更正,您可以用小碼寫下來嗎?
對於任何不明確或虛假使用的術語,我提前表示歉意。
謝謝你!
那麼這取決於你如何組織你的程序,如果你真的把在適當的類和模塊的功能,並保持你的表格只用於啓動這些功能/子你可以簡單地把它作爲一個參數,如果你的代碼是不是最好的結構化,那麼它可能會更好地使用模塊aproach – Mederic
這實際上是我在VB網絡中的第一個項目,我試圖用最好的結構來學習最佳實踐技巧。所以我正在嘗試與類。我的一個大問題實際上是解決方案的實現,因爲我似乎在一些初學者中很欣賞它。你能看看我在上次回答中轉換的單身課程嗎?謝謝! –