展开全部
简单的,你的按钮什么都是放在一个窗体上吧,
默认的应该是Form1
你可以在这个窗体的键盘事件里写入:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
Command1_Click ''这段就是按钮1点击,等价于你在窗体上点了一下按钮,把它改成你设置的那个代表"0"的按钮
Case vbKeyNumpad1
Command2_Click ''把它改成你设置的那个代表"1"的按钮
Case vbKeyNumpad2
''
Case vbKeyNumpad3
''
''后面一样
End Select
End Sub
Select Case (http://baike.baidu.com/view/1232785.htm) 如果不会用,可以用IF语句来判断,这个函数的KeyCode就是说你在这个窗口上按下的键位置是哪些,你可以在VB6里面按下F2然后输入keycode搜索,他会列出所有的keycode成员vbKeyNumpad0~9这些就是keycode的成员
还有关键的一点.因为你放了其他控件,所以接受键盘指令的不一定是Form1,你可以修改Form1的KeyPreview=true(在属性窗口里,也可以直接把这句话丢到Load里),这属性的用处就是,只要是在这个Form1里的控件接受到的键盘指令,全部优先处理Form1再去处理控件自己的,
还有不懂的可以留言问我
默认的应该是Form1
你可以在这个窗体的键盘事件里写入:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
Command1_Click ''这段就是按钮1点击,等价于你在窗体上点了一下按钮,把它改成你设置的那个代表"0"的按钮
Case vbKeyNumpad1
Command2_Click ''把它改成你设置的那个代表"1"的按钮
Case vbKeyNumpad2
''
Case vbKeyNumpad3
''
''后面一样
End Select
End Sub
Select Case (http://baike.baidu.com/view/1232785.htm) 如果不会用,可以用IF语句来判断,这个函数的KeyCode就是说你在这个窗口上按下的键位置是哪些,你可以在VB6里面按下F2然后输入keycode搜索,他会列出所有的keycode成员vbKeyNumpad0~9这些就是keycode的成员
还有关键的一点.因为你放了其他控件,所以接受键盘指令的不一定是Form1,你可以修改Form1的KeyPreview=true(在属性窗口里,也可以直接把这句话丢到Load里),这属性的用处就是,只要是在这个Form1里的控件接受到的键盘指令,全部优先处理Form1再去处理控件自己的,
还有不懂的可以留言问我
追问
Command1_Click
这个是无效字符
另外我Command1 用的是数组 要怎么表示?
追答
Command1_Click是我写的
你就用你自己的那个
数组的话一样
如果是1就写 Command1_Click(0)
2就是Command1_Click(1) ''注意,这是看你第一个控件编号是0,如果是1你就自己修改下
其实你是数组,那这语句可以简短一下,因为vbKeyNumpad0~9其实就是96~105(这10个常量的值)
你可以写成
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode>=96 and KeyCode=48 and KeyCode<=57 then ''因为键盘上还有一组0~9 所以需要的话再加上这段
Command1_Click(KeyCode-48)''同上面一样,数组的第一个编号是0
End If
End Sub
展开全部
代码如下:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
Command1_Click '这段就是按钮1点击,等价于你在窗体上点了一下按钮,把它改成你设置的那个代表"0"的按钮
Case vbKeyNumpad1
Command2_Click '把它改成你设置的那个代表"1"的按钮
Case vbKeyNumpad2
''
Case vbKeyNumpad3
....
End Select
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
Command1_Click '这段就是按钮1点击,等价于你在窗体上点了一下按钮,把它改成你设置的那个代表"0"的按钮
Case vbKeyNumpad1
Command2_Click '把它改成你设置的那个代表"1"的按钮
Case vbKeyNumpad2
''
Case vbKeyNumpad3
....
End Select
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我同意前面的朋友的建议-考虑不在界面上放置接受焦点的控件(或者设置成不接受焦点),以便实施键盘事件获取。例如可通过Form_Keypress事件获取用户所按按键的码,然后根据该码改变TEXT(当然可以是其它控件)的内容。代码如:
Private Sub Form_KeyPress(KeyAscii As Integer)
Text1.Text = Text1.Text + Chr(KeyAscii)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Text1.Text = Text1.Text + Chr(KeyAscii)
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,在窗体上画一个textbox ,按F5运行工程,然后鼠标在text里面点一下,然后按键盘就可以了!
追问
晕,不是这个问题
我指的是 编个计算器,上面有0-9几个按钮,我想运行的时候键盘输入1-9几个数字和按那几个按钮效果一样
追答
……其实我写个计算器,建议不要在界面放置能获得鼠标光标的控件,比如text,你如果用text显示结果,那么很容易让text被鼠标点中,这样就无法监测键盘的按下时间,当然也有解决办法,不过我觉得用label代替text比较好,你可以把label设置成和text一样的样子
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是计算器的话,你搞个计时器,让焦点一直在text1里,+—*/的话,用2楼的方法,简单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询