我正在设计一个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网络中的第一个项目,我试图用最好的结构来学习最佳实践技巧。所以我正在尝试与类。我的一个大问题实际上是解决方案的实现,因为我似乎在一些初学者中很欣赏它。你能看看我在上次回答中转换的单身课程吗?谢谢! –