VB编程中的Keydown事件不让其反复触发的办法?

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:34:57
VB编程中编写如下一段程序:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode

Case 37 'left
MSComm1.Output = "Le"
txtlinkmessage.Text = "向左"

Case 38 'up
MSComm1.Output = "Go"
txtlinkmessage.Text = "向前"

Case 39 'right
MSComm1.Output = "Ri"
txtlinkmessage.Text = "向右"

Case 40 'down
MSComm1.Output = "Ba"
txtlinkmessage.Text = "向后"

Case Else
KeyAscii = 0
End Select

End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37 'left
MSComm1.Output = "Tu"
Case 39 'right
MSComm1.Output = "Tu"
Case 38 'up
MSComm1.Output = "Di"
Case 40 'down
MSComm1.Output = "Di"

End Select

End Sub

定义一个窗体变量
Dim KeyValue As Integer

Private Sub Form_Load()
KeyValue = -1

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyValue = KeyCode Then Exit Sub'添加

Select Case KeyCode

Case 37 'left
MSComm1.Output = "Le"
txtlinkmessage.Text = "向左"

Case 38 'up
MSComm1.Output = "Go"
txtlinkmessage.Text = "向前"

Case 39 'right
MSComm1.Output = "Ri"
txtlinkmessage.Text = "向右"

Case 40 'down
MSComm1.Output = "Ba"
txtlinkmessage.Text = "向后"

Case Else
KeyAscii = 0
End Select

KeyValue = KeyCode'添加
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37 'left
MSComm1.Output = "Tu"