|
![]()
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim ch As Char = e.KeyChar
If Not Regex.IsMatch(ch.ToString(), "^[\b\r0-9a-fA-F]$") Then
e.KeyChar = "" '放棄輸入的非法字符
MessageBox.Show("請正確輸入16進制數!!!", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
e.KeyChar = Char.ToUpper(ch) '強制轉換為大寫字母,放過退格和回車符
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim Addr As UInt16
Dim Val As Byte
Dim Index As Integer
Try
Addr = Convert.ToUInt16(ComboBox1.Text, 16) + 1 '取狀態口地址
Val = WinIoPort(Addr) '讀出并口控制口數據
TextBox26.Text = Val.ToString("X02") '顯示字節數據
Catch ex As Exception '異常捕捉
MessageBox.Show(ex.Message, "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
For Each c As Control In GroupBox2.Controls '遍歷GroupBox2上的控件
If TypeOf (c) Is TextBox Then '只遍歷TextBox類型的控件
If c.TabIndex <> TextBox26.TabIndex Then '排除TextBox26控件
Index = TextBox10.TabIndex - c.TabIndex '計算相對位D0~D7
c.Text = ((Val And (1 << Index)) >> Index).ToString("0") '填入數據位
End If
End If
Next
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim Addr As UInt16
Dim Val As Byte
Dim Index As Integer
Try
Addr = Convert.ToUInt16(ComboBox1.Text, 16) + 2 '取控制口地址
Val = WinIoPort(Addr) '讀出并口控制口數據
Catch ex As Exception '異常捕捉
MessageBox.Show(ex.Message, "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
For Each c As Control In GroupBox3.Controls '遍歷GroupBox3上的控件
If TypeOf (c) Is TextBox Then '只遍歷TextBox類型的控件
Index = TextBox18.TabIndex - c.TabIndex '計算相對位D0~D7
c.Text = ((Val And (1 << Index)) >> Index).ToString("0") '填入數據位
End If
Next
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim Addr As UInt16
Dim Val As Byte = 0
Dim Index As Integer
Try
Addr = Convert.ToUInt16(ComboBox1.Text, 16) + 2 '取控制口地址
For Each c As Control In GroupBox3.Controls '遍歷GroupBox3上的控件
If TypeOf (c) Is TextBox Then '只遍歷TextBox類型的控件
Index = TextBox18.TabIndex - c.TabIndex '計算相對位D0~D7
If c.Text = "1" Then
Val = Val Or (1 << Index) '組裝數據位
End If
End If
Next
WinIoPort(Addr) = Val '寫入并口字節數據
Catch ex As Exception '異常捕捉
MessageBox.Show(ex.Message, "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub |
|