VB里怎么用键盘的方向键来控制图片的移动啊??

VB里怎么用键盘的方向键来控制图片的移动啊??我想利用键盘控制图片移动~
KEYCODE=37,这个37是什么东东啊?是ASCII吗?
KEYCODE=37,这个37是什么东东啊?是ASCII吗?

KEYCODE=37,这个37是什么东东啊?是ASCII吗?

KEYCODE=37,这个37是什么东东啊?是ASCII吗?

KEYCODE=37,这个37是什么东东啊?是ASCII吗?

KEYCODE=37,这个37是什么东东啊?是ASCII吗?

1)在窗体上布置一个Image控件并载入图片

2)窗体代码

Option Explicit
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    ' 按下箭头键,改变图片的位置
    Select Case KeyCode
        Case vbKeyUp    '上箭头键
            Image1.Top = Image1.Top - 1
        Case vbKeyDown  '下箭头键
            Image1.Top = Image1.Top + 1
        Case vbKeyLeft  '左箭头键
            Image1.Left = Image1.Left - 1
        Case vbKeyRight '右箭头键
            Image1.Left = Image1.Left + 1
    End Select
End Sub
Private Sub Form_Load()
    '允许窗体截获键盘
    Me.KeyPreview = True
    '将窗体的度量单位从默认的Twips改为Pixels(像素)
    Me.ScaleMode = vbPixels
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
你的图片在哪里.在一个控件里吗?如果图片在一个控件里,直接移动控件就行啦.移动控件会吧,如果我要移动一个Image1到窗体的左上角.那就这样:
Image1.Move 0,0
0,0是Image1的Left和Top.至于用键盘的方向键来控制,可以这样:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 37 Then Image1.Move Image1.Left - 10, Image1.Top '左由于只向左移,TOP不变,所以也可以这样(Image1.Left=Image1.Left - 10)直接减小LEFT就行了.下面也一样.
If KeyCode = 38 Then Image1.Move Image1.Left, Image1.Top - 10 '上
If KeyCode = 39 Then Image1.Move Image1.Left + 10, Image1.Top '右
If KeyCode = 40 Then Image1.Move Image1.Left, Image1.Top + 10 '下
End Sub

Private Sub Form_Load()
Form1.KeyPreview = True '激活Form1上的控件的键盘事件之前,优先激活Form1键盘事件。
End Sub

是ASCII吧.我也不知它叫什么码.我就叫它KEYCODE.当你按下键盘任意一个键,KEYCODE就等于一个整数.
反正按下键盘方向键的左键,KEYCODE就等于37;上就是38.....
你可以这样得到每个键的KEYCODE:
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Text1 = KeyCode
End Sub本回答被提问者采纳
第2个回答  2007-08-27
KeyDown 和 KeyUp 事件

KeyUp 和 KeyDown 事件报告键盘本身准确的物理状态:按下键 (KeyDown) 及松开键 (KeyUp)。与此成对照的是,KeyPress 事件并不直接地报告键盘状态— 它只提供键所代表的字符而不识别键的按下或松开状态。

进一步举例将有助于阐明这一差别。输入大写 "A" 时,KeyDown 事件获得 "A" 的 ASCII 码。在输入小写 "a" 时,KeyDown 事件获得相同的 ASCII 代码。为区分大小写,这些事件使用 shift 参数。与此相对照的是,KeyPress 事件将字母的大小写作为两个不同的 ASCII 字符处理。

KeyDown 和 KeyUp 事件通过提供下列两参数返回输入字符的信息。

参数 描述
Keycode 指示按下的物理键。这时将 "A" 与 "a" 作为同一个键返回。它们具有相同的 keycode 值。但是请注意,键盘上的“1”和数字小键盘的“1”被作为不同的键返回,尽管它们生成相同的字符。
Shift 指示 SHIFT、CTRL 和 ALT 键的状态。只有检查此参数才能判断输入的是大写字母还是小写字母。

Keycode 参数
keycode 参数通过 ASCII 值或键代码常数来识别键。字母键的键代码与此字母的大写字符的 ASCII 值相同。所以 "A" 和 "a" 的 keycode 都是由 Asc("A") 返回的数值。在下例中用 KeyDown 事件判断是否按下了 "A" 键:

Private Sub Text1_KeyDown(KeyCode As Integer, _
Shift As Integer)
If KeyCode = vbKeyA Then MsgBox "You pressed _
the A key."
End Sub

按下 SHIFT + "A" 或只按下 "A" 后都将显示消息框— 也就是说,对每种情况,参数都是正确的。为判断按下的字母是大写形式还是小写形式需使用 shift 参数。请参阅本章后面的“Shift 参数”主题。

数字与标点符号键的键代码与键上数字的 ASCII 代码相同。因此“1”和“!”的 keycode 都是由 Asc("1") 返回的数值。同样,为检测“!”,需使用 shift 参数。

KeyDown 和 KeyUp 事件可识别标准键盘上的大多数控制键。其中包括功能键 (F1-F16)、编辑键(HOME、PAGE UP、DELETE 等等)、定位键(RIGHT、LEFT、UP 和 DOWN ARROW)和数字小键盘上的键。可以通过键代码常数或相应的 ASCII 值检测这些键。例如:

Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode = vbKeyHome Then MsgBox "You pressed the HOME key."
End Sub

详细信息 关于字符代码的完整列表,请参阅“语言参考”的的“字符集 (0–127)”和“字符集 (128–255)”。“键代码常数”提供了键代码常数与对应的 ASCII 值的完整列表,也可通过“对象浏览器”并搜索 KeyCodeConstants 获得此列表。