Private Delegate Sub my_delegate(ByVal text As String) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler _port.DataReceived, AddressOf data_in End Sub Private Sub CommsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommsToolStripMenuItem.Click Form2.Show() End Sub Private Sub data_in(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) If Rx_Flag = True Then Try _port.ReadTimeout = 200 in_data = _port.ReadLine Dim debug_delegate As New my_delegate(AddressOf Debug_Out) Label1.Invoke(debug_delegate, in_data) Catch ex As Exception End Try Else _port.ReadExisting() End If End Sub Private Sub Debug_Out(ByVal text As String) Label1.Text = text End Sub