【发布时间】:2013-11-17 03:27:46
【问题描述】:
我正在编写一个表单,该表单根据箭头键的按下将图片框向左或向右移动一定距离。我知道表单需要 KeyPreveiw = True,并进行了相应设置。我的代码是:
Public Sub frmGame_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.A OrElse e.KeyCode = Keys.Left Then
leftorright = -1
End If
If e.KeyCode = Keys.D OrElse e.KeyCode = Keys.Right Then
leftorright = 1
End If
If e.KeyCode = Keys.W OrElse e.KeyCode = Keys.Up Then
upordown = -1
End If
If e.KeyCode = Keys.S OrElse e.KeyCode = Keys.Down Then
upordown = 1
End If
End Sub
在这个块中,WASD 会相应地工作,但是 LRUD 箭头根本不会触发。我尝试使用:
Msgbox(e.keycode.tostring())
显示它们是否正在发射,其他按钮有效(123、ABC 等),但箭头没有。我对这个问题的猜测是我在表单上有按钮,并且他们自己使用按键(优先于表单)。在我的表单上,我有 3 个按钮,当我按下让我们说向下箭头时,我可以看到每个按钮都通过三个按钮突出显示。我该如何解决这个问题?提前谢谢!
编辑:删除按钮后,代码工作。如果可能的话,我需要弄清楚如何使表单优先于按钮:)
【问题讨论】:
标签: vb.net