Ok, gut.
Du solltest 2 Sachen einstellen:
Option Strict On einschalten und Option Infer auf Off stellen.
Option Strict On sorgt für, dass du die Datentypen richtig umwandelst.
So konnte ich 2 Fehler entdecken: Der Text aus TextBox2 muss zu einem
Integer umgewandelt werden (und du solltest vorher abprüfen, ob der
Benutzer keinen Quatsch eingibt) und zum anderen ist die BaudRate =
9600, statt dem String "9600". 🙂
Option Infer Off sorgt dafür, dass du dir angewöhnst, ...
oder
zu schreiben
1 | Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
2 | Try
|
3 | SerialPort1.PortName = TextBox1.Text 'Com1
|
4 | SerialPort1.BaudRate = CInt(TextBox2.Text) '2400
|
5 | SerialPort1.Open()
|
6 | TextBox3.Focus() 'Fokus wird auf TextBox3 gesetzt
|
7 | Button1.Enabled = False
|
8 | Button2.Enabled = True
|
9 | Button3.Enabled = True
|
10 | Button4.Enabled = True
|
11 | Button5.Enabled = True
|
12 | Button6.Enabled = True
|
13 | Catch ex As Exception
|
14 | MsgBox("Verbindung konnte nicht hergestellt werden!")
|
15 | SerialPort1.PortName = "COM1"
|
16 | SerialPort1.BaudRate = 9600
|
17 | End Try
|
18 | End Sub
|
Und noch eine dritte Sache, wenn es dir möglich ist*: Nimm den
VB6-Namespace raus. Dann ist kein alter VB6-Code im Programm. Es gibt
nämlich heute Funktionen, die effizienter sind. Es heißt
1 | MessageBox.Show("Dein Text", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
* Es kann je nach Hardware sein, dass du doch VB6 brauchst. Zum Beispiel
für vbCrLf. Ich weiß nicht, ob dir das Environment.NewLine reicht...
Was dein Data-Received-Sub angeht, da weiß ich nicht, was U555Dat sein
soll.