创建一个继承 SerialPort 的 class
Creating a class that inherits SerialPort
我有一个继承了 SerialPort
的 class,这个 class 设置串口的属性,如下面的代码所示。
Public Class Ports
Inherits SerialPort
WithEvents port As New SerialPort()
Sub New()
With port
.BaudRate = 19200
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
.RtsEnable = False
.ReceivedBytesThreshold = 1
.NewLine = vbCr
.ReadTimeout = 10000
End With
End Sub
End Class
问题是当我实例化它时,
Private WithEvents testPort As New Ports()
SerialPort
的属性没有转移过来,而是设置了默认值。
问题是因为您没有为对象设置实例,而是为该实例中的另一个变量设置实例。正如@the_lotus 指出的那样,删除变量或继承。我建议只删除不需要的变量 WithEvents port As New SerialPort()
然后使用实例...
Public Class Ports
Inherits SerialPort
Sub New()
With Me
.BaudRate = 19200
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
.RtsEnable = False
.ReceivedBytesThreshold = 1
.NewLine = vbCr
.ReadTimeout = 10000
End With
End Sub
End Class
我有一个继承了 SerialPort
的 class,这个 class 设置串口的属性,如下面的代码所示。
Public Class Ports
Inherits SerialPort
WithEvents port As New SerialPort()
Sub New()
With port
.BaudRate = 19200
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
.RtsEnable = False
.ReceivedBytesThreshold = 1
.NewLine = vbCr
.ReadTimeout = 10000
End With
End Sub
End Class
问题是当我实例化它时,
Private WithEvents testPort As New Ports()
SerialPort
的属性没有转移过来,而是设置了默认值。
问题是因为您没有为对象设置实例,而是为该实例中的另一个变量设置实例。正如@the_lotus 指出的那样,删除变量或继承。我建议只删除不需要的变量 WithEvents port As New SerialPort()
然后使用实例...
Public Class Ports
Inherits SerialPort
Sub New()
With Me
.BaudRate = 19200
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
.RtsEnable = False
.ReceivedBytesThreshold = 1
.NewLine = vbCr
.ReadTimeout = 10000
End With
End Sub
End Class