184 lines
6.4 KiB
VB.net
184 lines
6.4 KiB
VB.net
Imports System.IO.Ports
|
||
|
||
Public Class SetingSerialPort
|
||
Public G_Dictionary As Dictionary(Of String, (Boolean, String, Integer, String, Color))
|
||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click, Button3.Click, Button2.Click, Button1.Click
|
||
Dim bt As Button = CType(sender, Button)
|
||
'‘打开选色面板
|
||
Dim ColorDialog1 As New ColorDialog
|
||
ColorDialog1.ShowDialog()
|
||
'‘将选中的颜色赋值给文本的字体色
|
||
Select Case bt.Tag
|
||
Case "1"
|
||
TextBox1.ForeColor = ColorDialog1.Color
|
||
Case "2"
|
||
TextBox2.ForeColor = ColorDialog1.Color
|
||
Case "3"
|
||
TextBox3.ForeColor = ColorDialog1.Color
|
||
Case "4"
|
||
TextBox4.ForeColor = ColorDialog1.Color
|
||
End Select
|
||
|
||
|
||
|
||
End Sub
|
||
|
||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||
G_Dictionary.Clear()
|
||
Dim boot As Integer
|
||
'判断勾选框是否选中
|
||
|
||
'判断串口名称是否为空 port1
|
||
If String.IsNullOrEmpty(port1.Text) Then
|
||
MsgBox("请选择串口1名称")
|
||
Return
|
||
End If
|
||
'判断波特率是否为空
|
||
If String.IsNullOrEmpty(boot1.Text) Then
|
||
MsgBox("请选择串口1波特率")
|
||
Return
|
||
|
||
End If
|
||
|
||
'判断别名是否为空
|
||
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||
MsgBox("择串口1别名为空")
|
||
Return
|
||
End If
|
||
|
||
'添加到列表中
|
||
G_Dictionary.Add("1", (CheckBox1.Checked, port1.Text, Convert.ToInt32(boot1.Text), TextBox1.Text, TextBox1.ForeColor))
|
||
|
||
|
||
If String.IsNullOrEmpty(port2.Text) Then
|
||
MsgBox("请选择串口2名称")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(boot2.Text) Then
|
||
MsgBox("请选择串口2波特率")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||
MsgBox("择串口2别名为空")
|
||
Return
|
||
End If
|
||
G_Dictionary.Add("2", (CheckBox2.Checked, port2.Text, Convert.ToInt32(boot2.Text), TextBox2.Text, TextBox2.ForeColor))
|
||
|
||
|
||
|
||
If String.IsNullOrEmpty(port3.Text) Then
|
||
MsgBox("请选择串口3名称")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(boot3.Text) Then
|
||
MsgBox("请选择串口3波特率")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox3.Text) Then
|
||
MsgBox("择串口3别名为空")
|
||
Return
|
||
End If
|
||
G_Dictionary.Add("3", (CheckBox3.Checked, port3.Text, Convert.ToInt32(boot3.Text), TextBox3.Text, TextBox3.ForeColor))
|
||
|
||
|
||
If String.IsNullOrEmpty(port4.Text) Then
|
||
MsgBox("请选择串口4名称")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(boot4.Text) Then
|
||
MsgBox("请选择串口4波特率")
|
||
Return
|
||
End If
|
||
If String.IsNullOrEmpty(TextBox4.Text) Then
|
||
MsgBox("择串口4别名为空")
|
||
Return
|
||
End If
|
||
G_Dictionary.Add("4", (CheckBox4.Checked, port4.Text, Convert.ToInt32(boot4.Text), TextBox4.Text, TextBox4.ForeColor))
|
||
|
||
|
||
'关闭窗体并返回ok
|
||
Me.DialogResult = DialogResult.OK
|
||
Me.Close()
|
||
|
||
|
||
|
||
End Sub
|
||
|
||
Private Sub SetingSerialPort_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||
|
||
'获取串口列表
|
||
Dim portNames As String() = SerialPort.GetPortNames()
|
||
'将串口列表添加到下拉框中
|
||
port1.Items.Clear()
|
||
port2.Items.Clear()
|
||
port3.Items.Clear()
|
||
port4.Items.Clear()
|
||
|
||
port1.Items.AddRange(portNames)
|
||
port2.Items.AddRange(portNames)
|
||
port3.Items.AddRange(portNames)
|
||
port4.Items.AddRange(portNames)
|
||
|
||
If IsNothing(G_Dictionary) OrElse G_Dictionary.Count = 0 Then
|
||
G_Dictionary = New Dictionary(Of String, (Boolean, String, Integer, String, Color))
|
||
port1.SelectedIndex = 0
|
||
port2.SelectedIndex = 0
|
||
port3.SelectedIndex = 0
|
||
port4.SelectedIndex = 0
|
||
|
||
boot1.SelectedIndex = 0
|
||
boot2.SelectedIndex = 0
|
||
boot3.SelectedIndex = 0
|
||
boot4.SelectedIndex = 0
|
||
Else
|
||
For Each item In G_Dictionary
|
||
Select Case item.Key
|
||
Case "1"
|
||
CheckBox1.Checked = item.Value.Item1
|
||
If port1.Items.Contains(item.Value.Item2) Then
|
||
port1.Text = item.Value.Item2
|
||
Else
|
||
port1.SelectedIndex = 0
|
||
End If
|
||
boot1.Text = item.Value.Item3
|
||
TextBox1.Text = item.Value.Item4
|
||
TextBox1.ForeColor = item.Value.Item5
|
||
Case "2"
|
||
CheckBox2.Checked = item.Value.Item1
|
||
If port2.Items.Contains(item.Value.Item2) Then
|
||
port2.Text = item.Value.Item2
|
||
Else
|
||
port2.SelectedIndex = 0
|
||
End If
|
||
boot2.Text = item.Value.Item3
|
||
TextBox2.Text = item.Value.Item4
|
||
TextBox2.ForeColor = item.Value.Item5
|
||
Case "3"
|
||
CheckBox3.Checked = item.Value.Item1
|
||
If port3.Items.Contains(item.Value.Item2) Then
|
||
port3.Text = item.Value.Item2
|
||
Else
|
||
port3.SelectedIndex = 0
|
||
End If
|
||
boot3.Text = item.Value.Item3
|
||
TextBox3.Text = item.Value.Item4
|
||
TextBox3.ForeColor = item.Value.Item5
|
||
Case "4"
|
||
CheckBox4.Checked = item.Value.Item1
|
||
If port4.Items.Contains(item.Value.Item2) Then
|
||
port4.Text = item.Value.Item2
|
||
Else
|
||
port4.SelectedIndex = 0
|
||
End If
|
||
boot4.Text = item.Value.Item3
|
||
TextBox4.Text = item.Value.Item4
|
||
TextBox4.ForeColor = item.Value.Item5
|
||
|
||
End Select
|
||
Next
|
||
|
||
End If
|
||
End Sub
|
||
|
||
|
||
End Class |