VB中响应键盘事件的方法

我用VB做了一个小游戏,其中需要用到在窗体中响应键盘事件,我用了Form_KeyDown方法,不过窗体中有按扭,Form_KeyDown就不好用了,请教如何解决。我是想用... 我用VB做了一个小游戏,其中需要用到在窗体中响应键盘事件,我用了Form_KeyDown方法,不过窗体中有按扭,Form_KeyDown就不好用了,请教如何解决。
我是想用左右箭头键控制窗体上一个image的移动,代码如下:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 39 Then '这里确实是有判断条件的,呵呵
Set Image1.Picture = ImageList1.Overlay("a2", "a1")
Image1.Left = Image1.Left + 600
ElseIf KeyCode = 37 Then
Set Image1.Picture = ImageList1.Overlay("a1", "a2")
Image1.Left = Image1.Left - 600
End If
End Sub
其实问题就出在按扭抢占SETFOCUS方法,不过现在我已经解决了,我是用一种笨法绕过去了,但使用者看不出来,要是各位有什么更好的办法就更谢谢了,当学习了,呵呵。
展开
 我来答
百度网友5c91d28
2006-04-12 · TA获得超过5084个赞
知道大有可为答主
回答量:1916
采纳率:50%
帮助的人:1673万
展开全部
把窗体的KeyPreview属性改为true即可。
我实验过以后回答的,不知道你的Form_KeyDown过程里是不是有什么判断条件,你可以在Form_KeyDown第一行加一个
MsgBox "OK"
试试,如果有提示,那可能是你的判断条件有问题,否则,我就帮不了你了。VB提供KeyPreview属性,就是为了解决你遇到的这个问题的。

另外请确定实验的时候,窗体是否处于激活状态,在窗口非激活状态是不能这么做的,那样需要用HOOK技术了。
smh1982
2006-04-12 · TA获得超过842个赞
知道小有建树答主
回答量:1578
采纳率:0%
帮助的人:877万
展开全部
我不知道你说的“Form_KeyDown就不好用了”具体是什么意思,“不好用”为何意?

应该来说,一楼的答案可以解决你的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fender_x
2006-04-12 · TA获得超过423个赞
知道小有建树答主
回答量:504
采纳率:0%
帮助的人:545万
展开全部
那就在第一焦点控件上的KEYDOWN事件中加代码呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式