从Visual Basic 6到.NET Framework的vbSerial Port组件



因此,我正在尝试将Visual Basic 6软件移植到新的dot NET中。

我的软件通过代码使用串行端口

My_form.Ser_port.Settings = "38400,n,8,1"
My_form.Ser_port.RThreshold = 1
If My_form.Ser_port.PortOpen = False Then
My_form.Ser_port.PortOpen = True
End If

显然,dot NET似乎没有这样的设置。

我已经正确导入了SerialPort1组件,我可以在我的工作区底部看到它,但是,我如何打开/关闭并将参数设置为VB6?我看到我可以设置波特率,RecivedByesThreshold,但没有PortOpen选项。

它会自动打开吗?

在您的代码中(VB6(SerialPort.PortOpen是一个属性:

SerialPort.PortOpen=True or False

但在VB.NET中,它不是属性,而是组件的子组件:

您必须调用SerialPort.Open((或SerialPort.Close((。如果端口打开或否,您也可以获取属性:SerialPort.IsOpen=True或False。

以下是如何在VB.Net中使用串行端口的示例。如果您使用VS2022,则必须首先安装名为System.IO.Ports.的NuGet包

Public Class Form1
Dim SP As New System.IO.Ports.SerialPort
Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
With SP
.PortName = "COM1" 
.BaudRate = 1200
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = 1
End With
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If SP.IsOpen Then
Exit Sub
Else
SP.Open()
End If
End Sub
Private Sub Form1_Closing(sender As Object, e As EventArgs) Handles MyBase.Closing
If SP.IsOpen Then
SP.Close()
End If
End Sub
End Class

相关内容

最新更新