
正文
vb.net键盘方向键 vbnet button
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net编程一个用键盘控制的东西
最简单vb.net键盘方向键的加速运动示例,直接拷贝代码,即可用方向键控制控件移动
Public Class 最简单vb.net键盘方向键的加速运动
Dim 左右, 上下 As Integer
Dim X, Y, VX, VY, VA As Double
Dim WithEvents 时钟 As New Timer
Dim WithEvents 移动控件 As New Label
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.KeyPreview = True
VA = 0.5
X = 300.0
Y = 300.0
移动控件.BackColor = Color.MediumPurple
移动控件.Size = New Size(60, 60)
Controls.Add(移动控件)
时钟.Interval = 25
时钟.Enabled = True
End Sub
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Up Then 上下 = -1
If e.KeyCode = Keys.Down Then 上下 = 1
If e.KeyCode = Keys.Left Then 左右 = -1
If e.KeyCode = Keys.Right Then 左右 = 1
End Sub
Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
If e.KeyCode = Keys.Up Then 上下 = 0
If e.KeyCode = Keys.Down Then 上下 = 0
If e.KeyCode = Keys.Left Then 左右 = 0
If e.KeyCode = Keys.Right Then 左右 = 0
End Sub
Private Sub 时钟_Tick(sender As Object, e As EventArgs) Handles 时钟.Tick
VX = Math.Min(VX + 左右 * VA, 10)
VY = Math.Min(VY + 上下 * VA, 10)
X += VX
Y += VY
If X 0 Then X = 2 : VX = -VX
If Y 0 Then Y = 2 : VY = -VY
If X Width - 移动控件.Width Then X = Width - 移动控件.Width - 2 : VX = -VX
If Y Height - 移动控件.Height Then Y = Height - 移动控件.Height - 2 : VY = -VY
移动控件.Location = New Point(X, Y)
End Sub
End Class
相关问答
Q1: vb中如何获得键盘方向键的键值
将窗体KeyPreview属性设置为True并对Form_KeyDown事件编程,可以获取键盘箭头键的键值。实现方法如下:
Option Explicit
Private Sub Form_Load()
'允许窗体拦截键盘按键
Me.KeyPreview = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
' KeyCode 键盘码是键盘上每个按键的唯一编码
' 在VB中,符号常数表示键盘码,例如 vbKeyF1 表示F1键,
' vbKeyHome 表示HOME键……
Select Case KeyCode
Case vbKeyLeft: Print "左箭头键值:" + CStr(KeyCode)
Case vbKeyRight: Print "右箭头键值:" + CStr(KeyCode)
Case vbKeyUp: Print "上箭头键值:" + CStr(KeyCode)
Case vbKeyDown: Print "下箭头键值:" + CStr(KeyCode)
End Select
End Sub
Q2: vb.net 方向键不能触发 keydown 事件
某些键,如 Tab、Return、Esc 和箭头键,由控件自动处理。所以当你的窗体添加了其它控件如按钮,checkbox等,form的keydown事件就触发不了,为使这些键引发窗体的KeyDown事件,你需要重写form.ProcessDialogKey函数,这个函数可以在消息预处理期间 处理对话字符,例如TAB、RETURN、ESCAPE和箭头键等,以下是我重写了这个事件来处理方向键,你需要把它放到你的代码里:
Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
If keyData = Keys.Left Or keyData = Keys.Right Or keyData = Keys.Up Or keyData = Keys.Down Then
Return False'如果是方向键返回FALSE,意思是继续执行form的keydown事件.
Else
Return MyBase.ProcessDialogKey(keyData)
End If
End Function
关于vb.net键盘方向键和vbnet button的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






