当前位置
:
学海荡舟
->
电脑乐园
-> 快学 Visual Basic
一 初学VB
1
从多媒体程序开始
2
制作一个屏保程序
3
VB窗体
4
文本框控件
5
标签控件
6 命令按钮
·
属性和事件
·
Command的常用事件
·
日积月累和小测试
7
图片和图像
8
复选框和单选框
9
容器控件
10 定时器控件
11 使用帮助文件
☆
本教程来源于
《电脑大学》
谈谈您的看法
·Command的常用事件
现在我们通过一个有趣的小程序“自由的小青蛙”来看看其中的小青蛙是怎样通过不同的事件来完成各种动作的。
(见图一)
左右跳--按“Z”键,
对青蛙点鼠标左右键
上下跳--按“X”键,
对青蛙点鼠标左右键
落 水--双击莲花
还 原--对莲花点鼠标右键
蛙 鸣--按“C”键
(图一)
窗体设计界面中,我们可以看出这个程序界面是由一个包含图形的窗体,一个Command控件,一些Label控件,还有几个PictureBox 控件所组成。关于PictureBox,将在后一节作详细介绍,现在我们只是通过它来认识一下事件。
移动鼠标,触发了lblmj的
MouseMove
事件。
按“Z”键,触发了窗体的
KeyPress
事件。
单击左键和右键,分别触发了两个PictureBox控件的
MouseDown
事件。
按“C”键,又触发了窗体
KeyPress
事件。
双击左键,触发了lbltb的
DblClick
事件。
单击左键,触发了Lbltb的
MouseDown
事件。
讲到现在,对于属性、方法、事件这三个概念,你弄懂了吗?
再举个例子吧:如果我按一下CommandButton按钮,要让一个蓝色的Label控件移动,那么,
蓝色是Label控件的属性;
而移动则是 Label控件的方法,
至于什么时候移动,则要放进Command1_Click这个事件中让它发生。
(见图二)
(图二)
这三个基础性概念对今后学习VB重要。当你学到一定的程度,尝试自己制作ACtiveX控件时,如果概念不清的话,将“方法”弄成“事件”,“事件”混成“属性”,张冠李戴,会吃足苦头!
搞清楚了属性、方法、事件这三个概念,以后理解控件就更能从全方位去考虑,而不光是只从属性角度来看控件了。
现在来看一下用户的常用操作所产生的事件。
鼠标事件
Cilck
:用户单击鼠标键时发生
DbLClick
:用户双击鼠标键时发生
MouseDown
:用户释放鼠标键时发生
MouseMove
:移动鼠标时发生
键盘事件
KeyDown
:在键按下时触发。(可获得一个KeyCode值)
KeyUp
:在键弹起时触发。(可获得一个KeyCode值)
KeyPress
:在键盘按下再弹起时发生。(它可获得KeyAscii值)
慢着,既然有了KeyDown和KeyUp,为什么还要KeyPress事件,我将键盘按下去后,到底是触发了KeyPress事件,还是KeyDown或KeyUp事件? 答案是,当我们按了一下键盘后,这三种事件都触发。
一般而言,大多数程序并不关心KeyDown事件来确定按下的键,KeyPress事件在触发后,能够获得一个
KeyAscii
值。它指键盘上的某个键与计算机ASCII码对应的值,如键“1”,KeyAscii为49;“A”,KeyAscii为65;“Enter”,KeyAscii为13。 当我们在KeyPress事件中将KeyAscii的值改为0后,就等于禁止键入。
来看一下这个文本框,
(见图三)
由点到面在此控件的KeyPress事件中有这样一段代码,所以用户无论按了任何键,都不能对其输入文字。
(见图四)
(图四)
(图四)
然而并不是所有键盘上的键都有其KeyAscii值,有时,我们程序要判断用户是否按了功能键,可要区别数字小键盘和常规数字键时,那么KeyAscii就无能为力了。此时可以考虑KEyDown和KeyUp事件,当用户击键后,它们能获得一个唯一的
KeyCode
值,从而判断用户到底按了键盘上的哪个键。可以说,键盘上大多数键(Tab、PrintScreen键除外),都有唯一的KeyCode序列号。
总而言之,我们编程序可以根据需要来确定所选用的事件,如果是针对文本操作,一般采用KeyPress事件较好,因为它能获得一个与ASCII码相通的KeyAscii值。 从这一节课中,我们了解到了Command_Button的一些常用知识。CommandButton俗称命令按钮,很多程序的代码,都是编写在CommandButton控件的Click事件中的。
在这一节中,我们还接触了事件这个概念。VB属于事件驱动程序,它的程序代码,大多是写进一个个事件过程中的,所以,我们除了要了解用户的常用鼠标事件和键盘事件外,还必须灵活掌握代码设计器中的事件选择框,它能为我们编程带来方便。 如果深入搞清了KeyAscii与KeyCode的区别,以及KeyPress与KeyDown和KeyUp的区别的话,可以使我们的编程水平再上一个档次。
下 一 节
谈谈您的看法