2021-06-09

事件(Event):

事件是指由系统事先设定的、能被对象识别和响应的动作。

事件是指对象对于外部动作的响应 ,当对象发生了某个事件,就会执
行与此对象的这个事件相应的代码,这段代码被称为“事件过程”。事件

过程的命名格式为 : Private Sub 控件名_事件名()
例如:我们在窗体上按了一下鼠标左键 ,这样就发生了一个窗体的
“Click”(即单击)事件,并执行与其对应的事件过程。这个的事件过程名
称为: Form1_Click
我们可以为事件过程编写代码,使得当某个对象发生了某个事件时可
以执行我们需要的一些操作。
事件即控件对外部条件的反应,不同的控件具有不同的事件 。如:对
于命令按钮,通常情况下我们都是单击它,所以最常使用的是单击事件 ,
对于驱动器列表框控 件,通常我们使用的是它的改变事件 。但我们使用控
件的相应事件时,我们必须对其相应的事件进行编写代码,否则控件什么
事情也不会做 。

事件处理器

确定控件如何响应事件的事件过程可以称之为“事件处理器”。
要为某一控件的特定事件编写程序,可以通过双击控件切换到代码窗
口再选择相应的事件来完成,也可以通过“视图”菜单中的“代码窗口”
命令切换到代码编辑窗口来完成。
我们看到两个下拉列表框,第一个下拉列表框里包含了窗体中所有的
控件,包括窗体本身;第二个下拉列表框中包含了选中控件的所有事件。
在此状态下 ,要对某个 控件进行编程,需要 先在左边的下拉列表框中选
中要编程的控件,然后再右边的下拉列表框中选择要编程的事件。例如我
们要对“Commandl”控件的“KeyDown’’事件 进行编程。
控件名称和相应事件的名称共同构成了事件处理器的名称 ,如上图中
所示的“Form Load ()” 表示对象是“Form’’窗体,“Load’’表示窗体
的加载事件,即窗体启动时发生的事件,对此事件进行编程可以确定窗体
启动时所做的事情。
常用的事件有两种 ,即鼠标事件和键盘事件。
鼠标事件
鼠标事件是 Visual Basic 编程中最常用到的事件 ,多数控件都支持鼠
标操作,因此对鼠 标事件进行编程是非常重要的。
鼠标事件主要有以下几种:
Click:单击事件,即单击鼠标时发生的事件。
DblClick:双击事件,即双击鼠标时发生的事件。
MouseDown:鼠标按下时发生的事件。
MouseUp:鼠标抬起时发生的事件。MouseMove:鼠标移动时发生的事件,对某控件的此事件进行编程,则
当鼠标移过此控件时就会触发此事件 ,执行其相应代码。
鼠标事件的发生顺序是:
(1)首先发生的是 MouseMove 事件,当鼠标移动时,将会连续触发
MoouseMove 事件。
(2)当鼠标按下时发生 MouseDown 事件。
(3)鼠标松开时发生 MouseUp 事件。
(4)如果按住的是鼠标左键,则 Click 事件在 MouseUp 之后发生。
双击鼠标时事件发生顺序是:
(1)当鼠标按下时发生 MouseDown 事件。
(2)鼠标松开时发生 MouseUp 事件。
(3)单击鼠标发生 Click 事件。
(4)双击鼠标发生 DblClick 事件。
(5)完成鼠标双击时发生 MouseUp 事件。
在上面所列出的这些事件中 ,最常用到的就是 Click 事件和 DblClcik
事件,MouseMove 和 douseUp 事件不太经常用 ,一般用在需要对鼠标进行
处理的地方。如:对于最常见的命令按钮,通常情况下我们使用 Click 事
件;而在进行画图的时候 , 例如画一条直线,必须先按住鼠标左键,然后
拖动鼠标,再松开鼠标。在此过程中 ,首先触发 MouseDown 事件,我们可
以在此事件中记录鼠标的开始位置 , 再对 MouseUp 事件进行编程,以记录
鼠标的结束位置;其中还要对 MouseMoove 事件进行编程,以在移动过程中
进行处理画图操作,而不是 Click 或 DblClick 事件。
鼠标的单击事件定义如下:
Sub Click()
End Sub
双击事件定义如下:
Sub DblClick()
End Sub
对于 MouseDown 和 MouseUp 事件,它们的定义要复杂 的多。对于 MouseUp
事件,其定义如下:
Private Sub Labell _MouseUp(Button As Integer, Shift As Integer,
X As Single, Y As Single)
End S
在上面的参数中 ,Button As Integer 定义了参数 Button,该参数是
用于确定按下的是鼠标的左键 ,右键,还是中键,其取值如下表所示。
常量 数值 说明
VbleftButton 1 按下鼠标左键
VbRightButton 2 按下鼠标右键VbMiddleButton 4 按下鼠标中键
Shift As Integer 定义整型参数 Shift,该参数用于确定键盘上 Shift
键、Ctrl 键、Alt 键是否被按下,其取值如下表所示。
常量 数值 说明
VbShi
ftMas
k
1 按下 S
hift

VbCtr
lMask
2 按下 C
trl 键
VbAlt
Mask
4 按下 A
lt 键
要判断是哪个键被按下了,要由相应的程序代码来完成。如:
Private Sub Labell MouseUp(Button AS Integer,Shift As Integer,
X aS Sing , Y as Single)
If Button=VbRightButton Then
Msgbox(“你按下去的是鼠标右键”)
End If
End Sub
此段代码在鼠标抬起时执行 ,程序中用 If 条件判断语句来判断究竟是
哪个键被按
当 Button=VbRightButton 成立时,即鼠标右键被按下,这时可以执行
相应的操作。
Private Sub Labell MouseUp(Button As Integer,Shift As Integer,
X as Sin2 Single)
If Shift=2 Then
Msgbox(“单击鼠标时 Ctrl 键被按下”)
EndIf
End Sub
这段代码在执行过程中判断当鼠标抬起时键盘上哪个键被按了下去 。
如上表说明 ,当 Shift 值为 2 时,表示 Ctrl 键被按了下去。
由上面的例子可以看出我们可以对鼠标进行一些判断 ,然后执行一些
特殊操作,但用起来通常比较麻烦 。键盘事件
鼠标事件是由鼠标键的单击、双击、移动等操作时发生 ,键盘事件则
是在键盘的某个键按下去时触发 。除了鼠标事件外,通常需要对键盘事件
进行编程。键盘事件主要有以下几种:
(1)KeyDown:当键盘上某键被按下去时发生 。
(2)KeyUp:键盘上的键抬起来时发生 。
(3)KeyPree:此事件发生在键盘被按下后和字符被显示出来之前发生 。
对于键盘事件,相对来说 KeyDown 事件和 KeyUp 事件使用比较少 ,通
常情况下对 KeyPress 事件编程较多,因为此事件注重键盘被按下的是哪个

KeyPress 事件定义如下:
Private Sub Textl_KeyPress(KeyAscii As Integer)
End Sub
其中,参数 KeyAscii 被定义为整型变量,表示被按下去键的 Ascii 码,
我们可以通过对变量 KeyAscii 值的判断来执行一些特殊操作。例如要想实
现在文本框中只能输人数字 ,不接受其它字符 ,可以编写如下代码:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = O
End If
End Sub
此段代码表示:如果被按下去的键的 Ascii 码值不在 48 到 57 之间(即
输入不是数字 ),则将 KeyAssii 值设置为零。从而不进行操作 ,文本框中
并不存在输入的字符 。
(4) Change:Change 事件在控件的内容发生改变时执行 。如:当我们
要做一个类似记事本程序的时候,用文本框控件作为内容编辑区 ,当文本
框内容改变而 并未保存时,用户却在此时退出程序 ,我们希望程序能够给
出提示。可以通过定义一个整型变量“IsChang",当其值为 0 时表示未存
盘,其值为 1 时表示存 盘了,在文本框控件的 change 事件中输入如下代
码:
“IsChange=0"。在程序退出事件中对 IsChange 值进行判断,当值为 0
时就给予提示 ,否则退出程序。程序代码如下:
Private Sub Textl_Change()
IsChange=0
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As
Integer)
If lsChange = 0 ThenMsgBox (“还未存盘,是否存盘”), VbOkCancle, “提示!”
End If
End Sub
此段代码用于程序退出时的判断 ,Form_QueryUnload 事件表示程序退
出时所执行的事件。
这里主要介绍了事件处理器,常见的属性与各种事件 ,在 Windows 应
用程序中,我们经常要用到上面所介绍的属性与事件 。
焦点
在开发 Windows 程序时,有一个很重要的概念——焦点。所谓焦点,
就是控件能够接受键盘输入的当前状态 。只有具有焦点的控件,才能接受
用户的键盘输 入;换一种说法也可以这样说,当前状态下用户所有的键盘
输入只能被具有焦点的控件所获得。需要注意的是,焦点只是在程序运行
时才有的概念,也就是说在设计 程序时,不能说某个控件具有焦点或不具
有焦点。
焦点是对象接受用户鼠标操作或键盘操作的能力 。当对象具有焦点时,
才可以接受用户的操作 。例如,在有就几个文本框的窗体中 ,只有具有焦
点的文本框才能接受用户的输入 。
要使用某个控件获得焦点 ,可以有如下三种方法:
(1)、使用键盘上的 “Tab”键,将焦点移到相应的控件 上。
(2)、使用鼠标直接在相应的控件上单击就可以了 。
(3)、在程序代码中使用该控件的 “SetFocus”方法。
对于绝大多数的控件,都具有“TabStop”属性和 “Tablndex”属性 。
其中,“TabStop”属性是用来设置是否允许 用户使用 “Tab”键将焦
点移到该控件上,默认情况下是允许的。“TabStop”属性有两个取值 :
“True”和“False”,若其值为“True” 时,允许使用“Tab”键将焦点
移到该控件;否则,就不允许 。但要注意,不管 “TabStop’’属性的取值
为“True”还是为“False”,使用鼠 标都可以将焦点转移到该控件 。
“Iablndex”属性则是用来设置该控件的跳表顺序的 。前面已经说过,
使用“Tab”键可以将焦点从一个控件上转移到另一个控件上 ,在这个过程
中就有 一个跳表顺序的问题。也就是说 ,当用户第一次按下 “Tab”键时,
焦点将会移到哪一个控件上 ;第二次按下“Tab”键时,焦点又会移到哪一
个控件上等 ,这 个顺序就是跳表顺序 。
在设计窗体时 ,跳表顺序是根据控件放人窗体的先后顺序来决定的。
即第一个放人窗体的控件将最早获得焦点 ,以后每按一次“Tab”键,焦点
就会转移到下一个放人窗体中的控件上 。
在很多情况下 ,某些控件不需要使用 “Tab”键将焦点移到该控件上或
是不能根据控件放人窗体的先后顺序来决定跳表顺序 ,这时就需要设置“TabStop” 属性和 “Tablndex’’属性了 。“Tablndex”属性的取值是一
个整数,从 0 开始依次类推,该属性的值小的将先获取焦点 。
另外,还有两个与焦点相关的事件:“GotFocus”事件和
“LostFocus”事件。当焦点从一个控件转移到另一个控件上时 ,前者即曾
经拥有焦点的控件,将会发生“LostFocus”事件而后者即将会拥有焦点的
控件,则会发生“GotFocus”事件。

以下是 VB 中的常见事件:

change 对于滚动条来说,滑块位置改变;对于 textbox 来说,内容改

click 对象单击
dblclick 对象双击
dragdrop 鼠标拖动
dragover 鼠标拖过
dropdown 鼠标键松开
error 错误处理
gotfocus 获取焦点
itemcheck
keydown 键盘按下
keyup 键盘抬起
keypress 键盘按键
linkclose 网络连接关闭
linkerror 网络连接错误
linknotify
linkopen 网络已连接
oledragover
olegivefeedback
olestartdrag
pathchange
patternchange
reposition
scroll
timer 定时器计时达到预定间隔
validate
LostFocus 对象失去焦点
Load 对象加载,比如 form 的加载
MouseDown 鼠标按下
MouseMove 鼠标移动
MouseUP 鼠标抬起OlecompleteDrag ole 对象的拖动
OleDragDrop ole 对象的移动
paint 绘画
QueryunLoad
Resize form 或者控件大小重绘
Terminate 线程,进程终止
Unload 卸载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值