关于vb的一个简单题目,我想用keydown来改变背景颜色但是没反应,哪位高人解答下,下面是我编的.....

PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=Asc("r")ThenMe.BackC... Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = Asc("r") Then
Me.BackColor = vbRed
End If
End Sub
展开
 我来答
百度网友bdb9803
2012-05-25 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
设置窗体的KeyPreview属性为True,另外Keycode不是keyascii,它有自己的常数定义:

Private Sub Form_Load()
KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyR Then
Me.BackColor = vbRed
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2012-05-25 · TA获得超过6664个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2676万
展开全部
两种情况要注意:
第一:窗体上面不能有任何的控件。也就是说必须是空白的。
第二:你设置中断,看看你的keydoce是什么?我比较肯定的是那不是asc("r"),直接写数字好了。最多加'备注一下。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 40 Then'向下的箭头。
Me.BackColor = vbRed
End If
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e2d7a0573
2012-05-24 · TA获得超过279个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:158万
展开全部
貌似vb的keycode和ascii的编码是不一样的吧,你可以打断点验证一下啊
不会打断点的话,也可以msgbox keycode来看看r的编码到底是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式