




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机VB程序事件事件(Event): 事件是指由系统事先设定的、能被对象识别和响应的动作。 事件是指对象对于外部动作的响应,当对象发生了某个事件,就会执行与此对象的这个事件相应的代码,这段代码被称为“事件过程”。事件过程的命名格式为:PrivateSub控件名_事件名() 例如:我们在窗体上按了一下鼠标左键,这样就发生了一个窗体的“Click”(即单击)事件,并执行与其对应的事件过程。这个的事件过程名称为:Form1_Click 我们可以为事件过程编写代码,使得当某个对象发生了某个事件时可以执行我们需要的一些操作。 事件即控件对外部条件的反应,不同的控件具有不同的事件。如:对于命令按钮,通常
2、情况下我们都是单击它,所以最常使用的是单击事件,对于驱动器列表框控件,通常我们使用的是它的改变事件。但我们使用控件的相应事件时,我们必须对其相应的事件进行编写代码,否则控件什么事情也不会做。 事件处理器 确定控件如何响应事件的事件过程可以称之为“事件处理器”。 要为某一控件的特定事件编写程序,可以通过双击控件切换到代码窗口再选择相应的事件来完成,也可以通过“视图”菜单中的“代码窗口”命令切换到代码编辑窗口来完成。 我们看到两个下拉列表框,第一个下拉列表框里包含了窗体中所有的控件,包括窗体本身;第二个下拉列表框中包含了选中控件的所有事件。在此状态下,要对某个控件进行编程,需要先在左边的下拉列表框
3、中选中要编程的控件,然后再右边的下拉列表框中选择要编程的事件。例如我们要对“Commandl”控件的“KeyDown事件进行编程。 控件名称和相应事件的名称共同构成了事件处理器的名称,如上图中所示的“FormLoad()”表示对象是“Form窗体,“Load表示窗体的加载事件,即窗体启动时发生的事件,对此事件进行编程可以确定窗体启动时所做的事情。 常用的事件有两种,即鼠标事件和键盘事件。 鼠标事件 鼠标事件是VisualBasic编程中最常用到的事件,多数控件都支持鼠标操作,因此对鼠标事件进行编程是非常重要的。 鼠标事件主要有以下几种: Click:单击事件,即单击鼠标时发生的事件。 DblC
4、lick:双击事件,即双击鼠标时发生的事件。 MouseDown:鼠标按下时发生的事件。 MouseUp:鼠标抬起时发生的事件。 MouseMove:鼠标移动时发生的事件,对某控件的此事件进行编程,则当鼠标移过此控件时就会触发此事件,执行其相应代码。 鼠标事件的发生顺序是: (1)首先发生的是MouseMove事件,当鼠标移动时,将会连续触发MoouseMove事件。 (2)当鼠标按下时发生MouseDown事件。 (3)鼠标松开时发生MouseUp事件。 (4)如果按住的是鼠标左键,则Click事件在MouseUp之后发生。 双击鼠标时事件发生顺序是: (1)当鼠标按下时发生MouseDow
5、n事件。 (2)鼠标松开时发生MouseUp事件。 (3)单击鼠标发生Click事件。 (4)双击鼠标发生DblClick事件。 (5)完成鼠标双击时发生MouseUp事件。 在上面所列出的这些事件中,最常用到的就是Click事件和DblClcik事件,MouseMove和douseUp事件不太经常用,一般用在需要对鼠标进行处理的地方。如:对于最常见的命令按钮,通常情况下我们使用Click事件;而在进行画图的时候,例如画一条直线,必须先按住鼠标左键,然后拖动鼠标,再松开鼠标。在此过程中,首先触发MouseDown事件,我们可以在此事件中记录鼠标的开始位置,再对MouseUp事件进行编程,以记录
6、鼠标的结束位置;其中还要对MouseMoove事件进行编程,以在移动过程中进行处理画图操作,而不是Click或DblClick事件。 鼠标的单击事件定义如下: SubClick() EndSub 双击事件定义如下: SubDblClick() EndSub 对于MouseDown和MouseUp事件,它们的定义要复杂的多。对于MouseUp事件,其定义如下: PrivateSubLabell_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) EndS 在上面的参数中,ButtonAsInteger定义了参数Button,该参
7、数是用于确定按下的是鼠标的左键,右键,还是中键,其取值如下表所示。 常量数值说明 VbleftButton1按下鼠标左键 VbRightButton2按下鼠标右键 VbMiddleButton4按下鼠标中键 ShiftAsInteger定义整型参数Shift,该参数用于确定键盘上Shift键、Ctrl键、Alt键是否被按下,其取值如下表所示。 常量 数值 说明 VbShiftMask 1 按下Shift键 VbCtrlMask 2 按下Ctrl键 VbAltMask 4 按下Alt键 要判断是哪个键被按下了,要由相应的程序代码来完成。如: PrivateSubLabellMouseUp(But
8、tonASInteger,ShiftAsInteger,XaSSing,YasSingle) IfButton=VbRightButtonThen Msgbox(“你按下去的是鼠标右键”) EndIf EndSub 此段代码在鼠标抬起时执行,程序中用If条件判断语句来判断究竟是哪个键被按 当Button=VbRightButton成立时,即鼠标右键被按下,这时可以执行相应的操作。 PrivateSubLabellMouseUp(ButtonAsInteger,ShiftAsInteger,XasSin2Single) IfShift=2Then Msgbox(“单击鼠标时Ctrl键被按下”)
9、EndIf EndSub 这段代码在执行过程中判断当鼠标抬起时键盘上哪个键被按了下去。如上表说明,当Shift值为2时,表示Ctrl键被按了下去。 由上面的例子可以看出我们可以对鼠标进行一些判断,然后执行一些特殊操作,但用起来通常比较麻烦。 键盘事件 鼠标事件是由鼠标键的单击、双击、移动等操作时发生,键盘事件则是在键盘的某个键按下去时触发。除了鼠标事件外,通常需要对键盘事件进行编程。键盘事件主要有以下几种: (1)KeyDown:当键盘上某键被按下去时发生。 (2)KeyUp:键盘上的键抬起来时发生。 (3)KeyPree:此事件发生在键盘被按下后和字符被显示出来之前发生。 对于键盘事件,相对
10、来说KeyDown事件和KeyUp事件使用比较少,通常情况下对KeyPress事件编程较多,因为此事件注重键盘被按下的是哪个键 KeyPress事件定义如下: PrivateSubTextl_KeyPress(KeyAsciiAsInteger) EndSub 其中,参数KeyAscii被定义为整型变量,表示被按下去键的Ascii码,我们可以通过对变量KeyAscii值的判断来执行一些特殊操作。例如要想实现在文本框中只能输人数字,不接受其它字符,可以编写如下代码: PrivateSubText1_KeyPress(KeyAsciiAsInteger) IfKeyAscii48OrKeyAsci
11、i57Then KeyAscii=O EndIf EndSub 此段代码表示:如果被按下去的键的Ascii码值不在48到57之间(即输入不是数字),则将KeyAssii值设置为零。从而不进行操作,文本框中并不存在输入的字符。 (4)Change:Change事件在控件的内容发生改变时执行。如:当我们要做一个类似记事本程序的时候,用文本框控件作为内容编辑区,当文本框内容改变而并未保存时,用户却在此时退出程序,我们希望程序能够给出提示。可以通过定义一个整型变量“IsChang,当其值为0时表示未存盘,其值为1时表示存盘了,在文本框控件的change事件中输入如下代码: “IsChange=0。在程
12、序退出事件中对IsChange值进行判断,当值为0时就给予提示,否则退出程序。程序代码如下: PrivateSubTextl_Change() IsChange=0 EndSub PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger) IflsChange=0Then MsgBox(还未存盘,是否存盘),VbOkCancle,提示! EndIf EndSub 此段代码用于程序退出时的判断,Form_QueryUnload事件表示程序退出时所执行的事件。 这里主要介绍了事件处理器,常见的属性与各种事件,在Windows应用程
13、序中,我们经常要用到上面所介绍的属性与事件。 焦点 在开发Windows程序时,有一个很重要的概念焦点。所谓焦点,就是控件能够接受键盘输入的当前状态。只有具有焦点的控件,才能接受用户的键盘输入;换一种说法也可以这样说,当前状态下用户所有的键盘输入只能被具有焦点的控件所获得。需要注意的是,焦点只是在程序运行时才有的概念,也就是说在设计程序时,不能说某个控件具有焦点或不具有焦点。 焦点是对象接受用户鼠标操作或键盘操作的能力。当对象具有焦点时,才可以接受用户的操作。例如,在有就几个文本框的窗体中,只有具有焦点的文本框才能接受用户的输入。 要使用某个控件获得焦点,可以有如下三种方法: (1)、使用键盘
14、上的“Tab”键,将焦点移到相应的控件上。 (2)、使用鼠标直接在相应的控件上单击就可以了。 (3)、在程序代码中使用该控件的“SetFocus”方法。 对于绝大多数的控件,都具有“TabStop”属性和“Tablndex”属性。 其中,“TabStop”属性是用来设置是否允许用户使用“Tab”键将焦点移到该控件上,默认情况下是允许的。“TabStop”属性有两个取值:“True”和“False”,若其值为“True”时,允许使用“Tab”键将焦点移到该控件;否则,就不允许。但要注意,不管“TabStop属性的取值为“True”还是为“False”,使用鼠标都可以将焦点转移到该控件。 “Iab
15、lndex”属性则是用来设置该控件的跳表顺序的。前面已经说过,使用“Tab”键可以将焦点从一个控件上转移到另一个控件上,在这个过程中就有一个跳表顺序的问题。也就是说,当用户第一次按下“Tab”键时,焦点将会移到哪一个控件上;第二次按下“Tab”键时,焦点又会移到哪一个控件上等,这个顺序就是跳表顺序。 在设计窗体时,跳表顺序是根据控件放人窗体的先后顺序来决定的。即第一个放人窗体的控件将最早获得焦点,以后每按一次“Tab”键,焦点就会转移到下一个放人窗体中的控件上。 在很多情况下,某些控件不需要使用“Tab”键将焦点移到该控件上或是不能根据控件放人窗体的先后顺序来决定跳表顺序,这时就需要设置“Ta
16、bStop”属性和“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 olest
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自行车企业公益项目策划考核试卷
- 江苏省扬州市田家炳实验中学2025年初三下学期十月阶段性考试试题数学试题含解析
- 廊坊师范学院《中药分析实验》2023-2024学年第一学期期末试卷
- 天津理工大学中环信息学院《中医护肤理论与技术》2023-2024学年第二学期期末试卷
- 石家庄经济职业学院《康复医学导论》2023-2024学年第二学期期末试卷
- 内蒙古交通职业技术学院《生物药物临床前评价》2023-2024学年第二学期期末试卷
- 宁夏理工学院《韩国语应用写作》2023-2024学年第二学期期末试卷
- 江苏省镇江丹阳市2025年初三第二次模考语文试题试卷含解析
- 丽江职业技术学院《外科学Ⅰ》2023-2024学年第一学期期末试卷
- 辽宁省辽阳市灯塔市2024-2025学年小升初数学自主招生备考卷含解析
- 发改委备案变更申请书范本
- 重庆大学附属肿瘤医院麻醉科新增术中放疗场所环评报告
- 2022年工程机械设备租赁服务方案(含应急处理方案、保障措施)
- 围堰吹填施工方案
- 食品生产企业动态风险因素量化分值表食品生产日常监督检查要点表
- 基层医疗卫生机构依法执业自查表
- 放射免疫技术(免疫学检验课件)
- 普通高等学校毕业生就业协议书(三方协议)
- 滨江文化片区概念规划
- 烂尾楼分析完整版
- 介绍徐悲鸿的ppt
评论
0/150
提交评论