VB如何在窗体中显示按下键盘按键的字母

比如说 在窗体中显示 你按下了A
你按下了a
你按下了B
你按下了b
请大侠帮忙

VB在窗体中显示按下键盘按键的字母可以通过Form_KeyDown获取按键的KeyCode,然后再把KeyCode转换为相应的键的名字。

代码如下:

Private Sub Form_Load()
    Me.KeyPreview = True '使窗体可以获取键盘事件
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Print KeyCodeToStr(KeyCode) '获取按键信息
End Sub
Public Function KeyCodeToStr(vbKeycode As Integer) '按键的KeyCode转为相应键盘键
    If vbKeycode > 47 And vbKeycode < 91 Then
        KeyCodeToStr = Chr(vbKeycode)
        Exit Function
    ElseIf vbKeycode > 111 And vbKeycode < 124 Then
        KeyCodeToStr = "F" & vbKeycode - 111
        Exit Function
    End If
    Select Case vbKeycode
        Case 8: KeyCodeToStr = "Back"
        Case 9: KeyCodeToStr = "Tab"
        Case 12: KeyCodeToStr = "Clear"
        Case 13: KeyCodeToStr = "Enter"
        Case 16: KeyCodeToStr = "Shift"
        Case 17: KeyCodeToStr = "Ctrl"
        Case 18: KeyCodeToStr = "Alt"
        Case 19
            KeyCodeToStr = "Pause"
        Case 20
            KeyCodeToStr = "Caps Lock"
        Case 27
            KeyCodeToStr = "Esc"
        Case 32
            KeyCodeToStr = "Space"
        Case 33
            KeyCodeToStr = "Page Up"
        Case 34
            KeyCodeToStr = "Page Down"
        Case 35
            KeyCodeToStr = "End"
        Case 36
            KeyCodeToStr = "Home"
        Case 41
            KeyCodeToStr = "Select"
        Case 42
            KeyCodeToStr = "Print Screen"
        Case 43
            KeyCodeToStr = "Execute"
        Case 44
            KeyCodeToStr = "SnapShot"
        Case 45
            KeyCodeToStr = "Insert"
        Case 46
            KeyCodeToStr = "Delete"
        Case 47
            KeyCodeToStr = "Help"
        Case 144
            KeyCodeToStr = "Num Lock"
        Case 189
            KeyCodeToStr = "-_"
        Case 187
            KeyCodeToStr = "=+"
        Case 255
            KeyCodeToStr = "Unknown"
        Case 192
            KeyCodeToStr = "`~"
        Case 37
            KeyCodeToStr = "Left Arrow"
        Case 38: KeyCodeToStr = "Up Arrow"
        Case 39
            KeyCodeToStr = "Right Arrow"
        Case 40
            KeyCodeToStr = "Dowm Arrow"
        Case 219
            KeyCodeToStr = "[{"
        Case 221
            KeyCodeToStr = "]}"
        Case 186
            KeyCodeToStr = ";:"
        Case 222
            KeyCodeToStr = "'"""
        Case 220
            KeyCodeToStr = "\|"
        Case 188
            KeyCodeToStr = ",<"
        Case 190
            KeyCodeToStr = ".>"
        Case 191
            KeyCodeToStr = "/?"
        Case 193
            KeyCodeToStr = "\"
        Case Else
            KeyCodeToStr = "Unknown"
    End Select
End Function
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-03
这个很简单的用keydown 下面是代码:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print "你按下了:" + Chr(KeyCode)

End Sub
键盘中每个按键都有个与之对应的ASCII码

用chr函数将你按下的那个键的ASCII码转换成字符。
第2个回答  2009-02-01
Private Sub Form_KeyPress(KeyAscii As Integer)
Cls
Print "你按下的是:" & Chr(KeyAscii)
End Sub
第3个回答  2009-02-01
Private Sub Form_KeyPress(KeyAscii As Integer)
Print "你按下了" & Chr(KeyAscii)
End Sub
第4个回答  推荐于2016-04-06
简单得很:
做个键盘hook,然后返回keykode就行。你懒得做就留个邮箱,做个dll给你发过去,引用一下就行本回答被提问者采纳

VB如何在窗体中显示按下键盘按键的字母
VB在窗体中显示按下键盘按键的字母可以通过Form_KeyDown获取按键的KeyCode,然后再把KeyCode转换为相应的键的名字。代码如下:Private Sub Form_Load() Me.KeyPreview = True '使窗体可以获取键盘事件End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Print KeyCodeToStr(Key...

键盘的按键在VB代码里怎么表示
(1) 用API函数keybd_event,这个函数可以用来模拟一个键盘事件,它的VB声明为: Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 参数bVk表示要模拟的按键的虚拟码,bScan表示该按键的扫描码(一般可以...

用VB写个模拟按键程序 当敲击键盘tab时候,自动输入 abcdefg
1、Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 9 Then Text1.Text = abcdefg Tab键的Ascii码=9 End Sub 2、利用API函数:使用GetAsyncKeyState函数可以获得键盘的动作。GetAsyncKeyState函数根据虚拟键表判断按键的类型,返回值为一个16位的二进制数,如果被按下则最高位为1,即返...

请问最新版VB net中如何在窗口隐藏或失焦的情况下捕捉到键盘按下事件...
微软的DirectInput是基于硬件底层,可以在窗口无焦点时捕捉按键,有兴趣可以去了解了解,在游戏制作方面很有用。DirectX SDK 中文版,里面有关于DirectInput的介绍与用法。

VB里如何获得在windows下按键盘的键值?
如果你用的键盘hook的话,你可以用msdn查询一下里面包含了 keyboardproc回调函数的 参数的解释!!其中 wparam就是所谓的 虚拟件 例如 VK_SPACED代表 空格 在vb中你可以 根据 定义宏或者常量来 给16进制的 数字赋值 然后旧可以和c一样调用 vk_?拉, 加分谢谢!!!

vb中如何获得键盘方向键的键值
Sub Form_Load() '允许窗体拦截键盘按键 Me.KeyPreview = TrueEnd SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ' KeyCode 键盘码是键盘上每个按键的唯一编码 ' 在VB中,符号常数表示键盘码,例如 vbKeyF1 表示F1键, ' vbKeyHome 表示HOME键…… Select...

VB如何实现 将键盘代码数值还原回对应的键并在text中显示出来
用chr(按键代码)函数就可以把按键的代码还原对应的字符了。

vb如何设置按钮控件的快捷键
隐藏:对象名.Visible=False 菜单编辑器里可以直接设快捷键、是否隐藏等 另外还可以用键盘事件,并根据按键字符的ASCII码,来设按钮的快捷键(这里不是真的快捷键,就像你又给它添加一个按钮,但功能相同),这个比较麻烦要自己写。

EXCEL中用VB如何表达 按"方向键下",在宏录制器里面按“下”,代码里面显...
excel中的VB不能直接触发响应键盘事件,可以添加窗体,再添加响应程序 Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)If KeyCode = 40 Then MsgBox "向下"End If End Sub

VB如何判断是否按下键盘上某个键
把判断代码放到KeyDown事件中,KeyCode是这个事件的参数,在别的过程里无效。另外,要注意按键的接收对象,焦点在按钮则需要在按钮的KeyDown事件,或者设置窗体的KeyPreview=True,这样窗体总是能够接收到按键。

相似回答