我认为这是可能的,但我不知道......我想检查何时按下按键A将玩家向左移动,但现在只是一个消息框。
这是我在互联网上找到的所有代码,它没有用......
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.A Then
MsgBox("Left")
End If
End Sub
当你在文本框中输入内容时我不会问你怎么做,我问的是当你按一个键时如何运行一个事件。
试试这个...
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Asc(e.KeyChar) = 97 Or Asc(e.KeyChar) = 65 Then
MsgBox("hello")
End If
End Sub
这应该工作。 97是'a',65是ASCII中的'A'。
试试这个
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyCode = Keys.A Then
MsgBox("Left")
End Sub
要么
Private Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _
Handles textBox1.KeyDown
If e.KeyCode = Keys.A Then
MsgBox("Left")
end if
End Sub
KeyCode , KeyData and KeyValue
仅在KeyUp和KeyDown活动中是System.Windows.Forms.KeyEventArgs
的成员。他们实际上是从VB6中简化了这一点。使用VB 2017的新方法是......
Private Sub Textbox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtProblem.KeyPress
If e.KeyCode = "a" or e.KeyCode = "A" Then
MsgBox("Left")
End If
End Sub
所以,我向正确的方向迈出了一步,也许它会有所帮助。我试图在乒乓球比赛中控制球员到球员,发现如果文本框1突出显示或“有焦点”,那么这些命令将执行,我可以在屏幕上移动球拍。问题是还有一个文本框填满了屏幕一角的字母,因为这种情况我不知道如何摆脱它。也许它会有用。
私人子
Textbox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Asc(e.KeyChar) = 97 Then 'a
Paddle.Location = New Point(Paddle.Location.X - 10, Paddle.Location.Y)
End If
If Asc(e.KeyChar) = 119 Then 'w
Paddle.Location = New Point(Paddle.Location.X, Paddle.Location.Y - 10)
End If
If Asc(e.KeyChar) = 100 Then 'd
Paddle.Location = New Point(Paddle.Location.X + 10, Paddle.Location.Y)
End If
If Asc(e.KeyChar) = 115 Then 's
Paddle.Location = New Point(Paddle.Location.X, Paddle.Location.Y + 10)
End If
End Sub
此外,您可以使用此命令将焦点从另一个事件中提供给文本框
Public Sub ControlSetFocus(control As Control)
If Control.CanFocus Then
control.Focus()
End If
End Sub
这适合我
If e.KeyChar = Convert.ToChar("a") Then
MsgBox(Convert.ToChar("a") +"enter key pressed ")
End If
你也可以在“”中使用数字和大写