Mulla on erillisessä luokkamodulissa säie josta tietyn ehdon toteutuessa lähetettäisiin merkkijono main-formin textboxiin, mut miten toi lähetys toteutetaan?
Eli oon yrittänyt tota EventHandlerillä, mut en oo saanu
toimiin. MIssähän tuossa vika? RS232-luokassa yritän lukea dataa sarjaportista ja näyttää sen formilla kun puskurissa on dataa.
'Nämä ovat frmMainillä
Imports System.Threading
Public Class frmMain
Private WithEvents RS As New RS232
Public Shared Sub Main()
Dim RS As New RS232
'Lisätään käsittely RS232-luokan CommEventille
AddHandler RS.CommEvent, AddressOf CommEventHandler
End Sub
Public Sub CommEventHandler(ByVal Rx As String)
'Rx on data joka näytetään formilla combossa
lbHex.Items.Add(Rx)
lbHex.SelectedIndex = lbHex.Items.Count - 1
End Sub
End Class
'Nämä ovat RS232-luokassa
Imports System
Imports System.IO.Ports
Imports System.Threading
Public Class RS232
Public Shared COM As SerialPort
Public bContinue As Boolean
Public RxText As String
'määritetään eventit
Public Event CommEvent As CommEventHandler
Public Delegate Sub CommEventHandler(ByVal RxText As String)
Public Sub Read()
While (bContinue)
Try
Dim message As String = COM.ReadChar
If Not message Is Nothing Then
'jos sarjaportissa luettavissa dataa
'aktivoidaan CommEvent
OnCommEvent(message)
End If
Catch ex As TimeoutException
'Do nothing
End Try
End While
End Sub
Protected Overridable Sub OnCommEvent(ByVal e As String)
RaiseEvent CommEvent(e)
End Sub
End ClassAihe on jo aika vanha, joten et voi enää vastata siihen.