“ 本节课程一起学习VB中常用的鼠标事件”
VB是一种可视化编程语言,UI设计非常的方便。其用户交互中最为重要的方式是鼠标,此前我们介绍过鼠标的单击事件。那么本节课程我们一起来详细的学习鼠标的各种事件。
鼠标常用事件包括:
Click、DblClick、MouseMove、MouseDown、MouseUp。
01
—
鼠标事件的含义
鼠标事件是指,用户使用鼠标发生的某个动作时触发的相应的事件。
有时候一个动作会触发多个事件。
例如:
鼠标单击时,不仅会触发Click事件,还会引发 MouseDown、MouseUp事件。
鼠标事件及动作对应关系如下:
Click 鼠标单击
DblClick 鼠标双击
MouseMove 鼠标移动
MouseDown 鼠标按下
MouseUp 鼠标抬起
鼠标事件过程的建立:
在代码区域,首先选中一个控件,然后选中想要的事件类型,然后系统便会自动为我们创建一个事件过程的代码框架了。我们只需要在其中编写相应的代码即可。
02
—
鼠标事件发生的顺序
单击鼠标时:
会依次发生MouseDown、MouseUp、Click事件
双击鼠标时:
会依次发生MouseDown、MouseUp、Click、DblClick、MouseUp事件
简单做一个程序验证一下,如下:
首先绘制一个界面,一个窗体、一个标签控件、一个按钮。
然后编写代码,如下:
Private Sub Command1_Click()
Me.Cls
End Sub
Private Sub Label1_Click()
Print "click"
End Sub
Private Sub Label1_DblClick()
Print "Dbclick"
End Sub
Private Sub Label1_MouseDown(Button _
As Integer, Shift As Integer, X As Single, Y As Single)
Print "MouseDown"
End Sub
Private Sub Label1_MouseUp(Button _
As Integer, Shift As Integer, X As Single, Y As Single)
Print "MouseUp"
End Sub
最后,运行程序,测试下单击和双击文本框的效果。
单击标签
双击标签
03
—
鼠标事件的参数
以按钮的鼠标按下事件为例,其事件过程如下:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
其中有4个参数,它们的含义分别为:
Button:
该参数用来区别用户是通过鼠标的左键、右键或中键中的哪一个按下的。Button=1时,是鼠标左键;Button=2时,是鼠标右键;Button=4时,是鼠标中键。
Shift:
该参数用于判断用户在单击鼠标的同时是否按下了功能按键,功能键为Shift、Ctrl、Alt,当按下Shift键时,Shift=1,当按下Ctrl键时,Shift=2,当按下Alt键时,Shift=4。如果用户同时按下其中多个功能键,则Shift参数值等于它们对应的值之和。例如按下Shift和Ctrl按键时,Shift参数值为3。
X:
当前鼠标的坐标x
Y:
当前鼠标的坐标y
举例:
代码如下:
Private Sub Command1_MouseDown(Button _
As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Print "按了左键"
If Button = 2 Then Print "按了右键"
If Button = 4 Then Print "按了中键"
Print "Shift值:" & Shift
Print "鼠标位置:" & X & " " & Y
Print
End Sub
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
04
—
实例操作
需求:
设计一个贱贱的《来抓我》游戏,游戏界面中只有两个按钮,玩家目标是用鼠标点击到按钮则算胜利。当然,游戏可不会这么简单,因为当鼠标移动到按钮时,按钮的位置就会改变,所以能不能点到鼠标就看你的毅力和运气啦。
界面设计:
代码设计:
Private Sub Command1_Click()
MsgBox "你真厉害"
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Left = Rnd * (Me.Width - Command1.Width)
Command1.Top = Rnd * (Me.Height - Command1.Height)
End Sub
Private Sub Command2_Click()
MsgBox "你真厉害"
End Sub
Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command2.Left = Rnd * (Me.Width - Command2.Width)
Command2.Top = Rnd * (Me.Height - Command2.Height)
End Sub
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14