十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最简单的加速运动示例,直接拷贝代码,即可用方向键控制控件移动
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟空间、营销软件、网站建设、郎溪网站维护、网站推广。
Public Class 最简单的加速运动
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
; 在数据库的项目中 一定会有输入数据的Form 最令录入人员头痛的就是每填完一个数据后 要再操作鼠标 或者另一只手按一下Tab(不过还是很麻烦) 最人性化呢就是:按回车键(在小键盘内输入只要一只手就可以了) 还可以用方向键控制 第一步:Form的KeyPreview的属性为True 第二步:按照需要把TabIndex按顺序设置 第三步:编写一个方法 代码如下: FocusMove Is Function Name ControlName Is the Control s Name Which you want to use Private Sub FocusMove()Sub FocusMove(ByVal sender As Object ByVal e As System Windows Forms KeyPressEventArgs) Handles ControlName KeyPress ControlName KeyPress If e KeyChar = ChrW( ) Then SelectNextControl is a Function will be introduced next SelectNextControl(sender True True True False) End If End Sub SelectNextControl的说明来自MSDN: 激活下一个控件 [Visual Basic] Public Function SelectNextControl( _ ByVal ctl As Control _ ByVal forward As Boolean _ ByVal tabStopOnly As Boolean _ ByVal nested As Boolean _ ByVal wrap As Boolean _ ) As Boolean [C#] public bool SelectNextControl( Control ctl bool forward bool tabStopOnly bool nested bool wrap ); [C++] public: bool SelectNextControl( Control* ctl bool forward bool tabStopOnly bool nested bool wrap ); [JScript] public function SelectNextControl( ctl : Control forward : Boolean tabStopOnly : Boolean nested : Boolean wrap : Boolean ) : Boolean; 参数 ctl 从其上开始举裤搜索的 Control forward 如果为 true 则在 Tab 键顺序中前移岁答族 如果为 false 则在 Tab 键顺序中后移 tabStopOnly true 表示忽略 TabStop 属性设置为 false 的控件 false 表示不忽略 nested true 表示包括嵌套子控件(子控件的子级) false 表示不包括 wrap true 表示在到达最后一个控件之后从 Tab 键顺序中第一个控件开始继续搜索 false 表示不继续搜索 返回值 如果控件已激活 则为 true 否则为 false 备乎弊注 如果将控件的 ControlStyles Selectable 样式位设置为 true 该控件包含在另一个控件中 而且其所有父控件都可见并已启用 则 SelectNextControl 方法激活 Tab 键顺序中的下一个控件 下面列表中的 Windows 窗体控件是不可选择的 从该列表中的控件派生的控件也是不可选择的 Label Panel GroupBox PictureBox ProgressBar Splitter LinkLabel(当控件中没有链接时) 要求 平台: Windows Windows NT Windows ME Windows Windows XP Home Edition Windows XP Professional Windows Server 系列 最后要注意的就是TabIndex的设置 如果控件在GroupBox中 那么GroupBox要在TabIndex的顺序中 就是说 如果TextBox 在GroupBox 中 那么GroupBox Index= TextBox Index= 并且在SelectNextControld的参数nested=true 即可 还有一些细节大家在平时使用的时候还要多多注意的 end lishixinzhi/Article/program/net/201311/11492
(1)在Form1上布置一个Label,用来显示键盘码
(2)差族正窗体代码如下
Imports System.Windows.Forms
Imports System.IO
Imports 穗迅System.Net
Imports System.Windows.Forms
Imports System.IO
Imports System.Net
Public Class Form1
Private Sub Form1_Load(sender As Object,
e As EventArgs) Handles MyBase.Load
KeyPreview = True
End Sub
Private Sub Form1_KeyDown(sender As Object,
虚悔 e As KeyEventArgs) Handles MyBase.KeyDown
Label1.Text = e.KeyValue
End Sub
End Class
按键盘上的键,Label1将显示对应键的键盘码