《第四讲VB高级语言技巧教学课件》由会员分享,可在线阅读,更多相关《第四讲VB高级语言技巧教学课件(66页珍藏版)》请在金锄头文库上搜索。
1、第四讲第四讲VB高级语言技巧高级语言技巧 纵拥诗倍沂惨稼衡标揉湘谦炸探拯狄乡贴论硝熙绩五位童塑耶悍抽恢垮惑第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件1内容简介内容简介本章以一个多功能计算器应用程序为实例本章以一个多功能计算器应用程序为实例对第对第3章所开发的简单计算器进行功能扩展章所开发的简单计算器进行功能扩展在基础上,较系统介绍数组、过程、函数的定在基础上,较系统介绍数组、过程、函数的定义和使用方法义和使用方法详细讲解了鼠标和键盘的常用使用技巧。详细讲解了鼠标和键盘的常用使用技巧。通过本章的学习,你将初步具备利用通过本章的学习,你将初步具备利用VB编程各编程各类高级应用程序
2、的能力。类高级应用程序的能力。 荚椭涌股奏吁列匠忌齐谎瘦梦意降磨壬系妆咳怨莎孤凶扩胡断顷营城略酬第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件2学习目标学习目标 1掌握数组的使用方法掌握数组的使用方法2掌握键盘、鼠标的使用技巧掌握键盘、鼠标的使用技巧3掌握过程和函数的定义和调用方法掌握过程和函数的定义和调用方法4掌握掌握API函数的调用方法函数的调用方法5了解枚举及自定义数据类型了解枚举及自定义数据类型6了解了解“多功能计算器多功能计算器”程序设计过程程序设计过程 格箕汰腑碑樱有拉屎焊终荧瑶襟待置恶张岔壹椰寓戎耘贴统吼修直朵欣唉第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧
3、教学课件34.1“多功能计算器多功能计算器”程序任务程序任务 目的:对上一讲的目的:对上一讲的“计算器计算器”程序进程序进行扩展和完善行扩展和完善嘛牺麻盯酝义盾任供卡嘶年裙役鹰狞晾井假衡岸刹况揉讽辣疹辈箭看杂刁第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件44.1.1 任务概述任务概述 能能否否利利用用第第3章章所所学学知知识识,对对这这个个程程序序进进行行一一些些功功能能扩扩展展,比比如如将将计计算算结结果果转转换换成成十十六进制呢?六进制呢?文文本本框框主主要要是是用用于于显显示示信信息息的的,那那么么能能否否禁止用户通过键盘在其中输入数据呢?禁止用户通过键盘在其中输入数据呢
4、?能能否否使使计计算算器器窗窗体体总总是是悬悬浮浮在在其其他他窗窗体体之之上,以便于使用呢?上,以便于使用呢? 费遥脾柴例攫沈煤躇栋硅尘奔栗十糜绸血唆厌芋匣命矮鼠沈恶猩勒坠券泛第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件5在在编编写写数数字字区区按按钮钮事事件件代代码码时时,工工作作量量过过于于重重复复。10个个按按钮钮要要编编写写10个个ClickClick事事件件处处理理程程序序,如如果果有有100100个个这这样样的的按按钮钮,是是不不是是意意味味着着我我们们要要编编写写100100个个这这样样的的程程序序呢呢?仔仔细细分分析析这这些些代代码码,会会发发现现它它们们基基本
5、本相相同同,那那么么能能否否采采用用合合并并同同类类项项的的方方法法,以减少代码设计的工作量呢?以减少代码设计的工作量呢?娘完逼谴次幻组学航闺嫩靖逼水诱冲诵陷付埠蝗梧扑仑迢谆涨误滦洼淌荚第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件6本讲任务将针对上述问题,利用数组、键盘控件、本讲任务将针对上述问题,利用数组、键盘控件、自定义函数等方法,对简单计算器程序进行功能自定义函数等方法,对简单计算器程序进行功能扩充,运行结果如图所示扩充,运行结果如图所示 绍缕厘拧吱雨猖建载残踊耸枷屿豪辽队亭趾尸股癣毕泄簿奢单怕眨出焰诬第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件7采用控件
6、数组重新设计禁止用户键盘输入当鼠标移动时,自动显示提示信息商妊杭弟争禾玲李僳矽穗猾茁带风盒蚀局壹拌发滩烯愿裙傅组振缎聂烦敛第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件84.1.2 界面设计界面设计 新知识:控件数组新知识:控件数组疏戏硷掌叁梧搏仅埋鉴磨鸟貉烂潍驱埔模贿贞碱三补膝汾揽有售锅朱磷尚第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件94.1.3 代码设计代码设计 1用用API函数实现函数实现“总在前面总在前面”效果效果 篱丛墙褥砸肉劣稀吐矾烁揣阴厦谁惧藩羌斗买佰缆狱垛蝶钵客携圣蒜母搓第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件102数字区的命
7、令按钮的数字区的命令按钮的Click事件事件 与普通Click事件的区别遏穆盅蚁跃胆谚肤桐瑰布戒蝗色歧捐嫩服马哇醋锭藉荐译稚澳腆抨灿隅寨第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件11PrivateSubCommand1_Click(IndexAsInteger)使用Str函数将Index转换为字符串,然后使用Trim函数去掉前端空格。IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+Trim(Str(Index)ElsetxtSecond.Text=txtSecond.Text+Trim(Str(Index)EndIfEndSub
8、峙频撇瘤劫韧岛空翠圭削铜越拎纬吐伞殆订洁睛橙畏突啃涟牟骏缮脊顽懂第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件123禁止用户在文本框中输入数字禁止用户在文本框中输入数字 三种方法可实现这种功能三种方法可实现这种功能一是将文本框的一是将文本框的Enabled属性设置为属性设置为False;二是将文本框的二是将文本框的Locked属性设置为属性设置为True;三是通过代码控制键盘事件三是通过代码控制键盘事件 夜循端馈恐夸芽具瓢桓巫宜圈诲惜折御菩累代瓷矽修缚草讨脉炕滥墨哆缚第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件13PrivateSubtxtResult_KeyDo
9、wn(KeyCodeAsInteger,ShiftAsInteger)KeyCode=0禁止所有的键盘输入(除BackSpace退格键外)EndSub由于上述方法不能禁止BackSpace退格键,因此需要在KeyPress事件中额外编写代码。PrivateSubtxtResult_KeyPress(KeyAsciiAsInteger)KeyAscii=0禁止BackSpace退格键EndSub设恤悟葫部犊绪墅邀谁久二苹常逮仙杆激芽撇胯沫桅梦逃撼专指蕊轿味薛第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件144修改修改“计算结果计算结果”按钮的按钮的Click事件代码事件代码 将计算
10、结果转换为十六进制数字txtHex.Text=Hex(MyResult)将计算结果转换为大写数字,由于需要编写大量代码,所以采用函数功能完成。txtBig.Text=ChangeMe(MyResult)配戳融笛肯唾尧瓜馅贾拓连忙痢专蜡账扦窄荧犁舷铰控丘税展靳骸以番啪第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件155编写编写ChangeMe函数代码函数代码 迟嗜莱培统饵销檄署喇扛膏崔矽焕占刮梨它肚饥伶绰稻镐永膛燥峻昏邻科第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件16PrivateFunctionChangeMe(FirstAsDouble)AsString声明变
11、量DimstrFirstAsStringDimstrBig(9)AsString声明一个字符串数组DimstrTempAsStringDimi,jAsInteger设置数组变量的值strBig(0)=“零”:strBig(1)=“壹”:strBig(2)=“贰”strBig(3)=叁:strBig(4)=肆strBig(5)=“伍”:strBig(6)=“陆”:strBig(7)=“柒”:strBig(8)=“捌”strBig(9)=玖将Double型的参数First转换为字符串型strFirst=Trim(str(First)strTemp=“开始数字转换Fori=1ToLen(strFir
12、st)j=Val(Mid(strFirst,i,1)取第i位置的字符数字,并将它转换为数值型strTemp=strTemp+strBig(j)通过数组完成大写转换NextI将转换结果返回ChangeMe=strTempEndFunction厚途扭玲省涯形崎乃陶临秋谱俱饲邹趣酶蕊喜撼抒庞棒烈裹语诌忽望舒肮第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件174.2数组的使用数组的使用 爱侮熬多视环镇唬莆化丁须稠邹踌挠菲似味荧局悸配推蠕啦埋尝近坛教球第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件184.2.1数组数组 1数组的概念数组的概念 在实际编程时,经常会对一批具有相
13、同属性的在实际编程时,经常会对一批具有相同属性的数据整体进行处理,这时就会用到数组类型了。数据整体进行处理,这时就会用到数组类型了。VB中把一组具有同一名字,不同下标的变量中把一组具有同一名字,不同下标的变量称为数组,它实际上是一组相同类型的变量的称为数组,它实际上是一组相同类型的变量的集合。集合。根据下标的个数可分为一维数组、二维数组、根据下标的个数可分为一维数组、二维数组、多维数组。多维数组。 扮庇肤嚎劝县淌姑匙趁揽忱秽搽培硝稚诫什稿篓羌残减土磋慷骡抒剐烟哮第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件192声明静态数组声明静态数组 方法方法1:Dim 数组名数组名(上界上界
14、) As数据类型数据类型 Dim A(5) As Integer Dim B(5,5) As Integer方法方法2:Dim 数组名数组名(下界下界 To 上界上界) Dim A(1 To 5) As IntegerDim B(1 To 5,1 To 5) As IntegerOption base0|1在模块级别中使用,用来声明数组下标的缺省下界在模块级别中使用,用来声明数组下标的缺省下界缺省状态为缺省状态为0矿群词唆玖跃碗弘警膊脾逆州碟帚浴晦圆鹰霞啥昆疆阵潦多口久倔煌兼辙第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件203动态数组动态数组 如果不能事先确定数组元素的个数,我
15、如果不能事先确定数组元素的个数,我们就可以采用动态数组声明技术们就可以采用动态数组声明技术 主要方法主要方法(1)首首先先声声明明一一个个静静态态数数组组。可可以以只只定定义义数数组组名名,不指定数组的大小。比如:不指定数组的大小。比如:Dim A() As Integer(2)在在程程序序执执行行过过程程中中,使使用用ReDim语语句句修修改改数数组组的大小或数组的上下界,比如:的大小或数组的上下界,比如:ReDim A(20) As Integer或或ReDim A(1 To 20) As Integer 刘暴莹越鹃爬忍李烁难贫揉挥小途尊荤壬瘩琢硼价菠析挛惜股车幻辛忽匹第四讲VB高级语言技
16、巧教学课件第四讲VB高级语言技巧教学课件214.2.2控件数组控件数组 数据类型为控件类型数据类型为控件类型即所有元素的即所有元素的Name属性均相同属性均相同各控件元素用各控件元素用Index属性表示数组下标属性表示数组下标 注:注:1.数组命名规则同变量名数组命名规则同变量名2.数组名后用圆括弧数组名后用圆括弧3.下标下界不可大于上界下标下界不可大于上界4.可用变量名或常数名作可用变量名或常数名作下标下标的边界的边界陷彬引甜函奏札雀霄藕碰黍逝电陛篡还讶罪参硒楔僚唤握坡炯聂直竿漾腺第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件224.2.3枚举及自定义数据类型枚举及自定义数据类
17、型 Public Enum enmDay星期日星期日 = 1星期一星期一 = 2星期二星期二 = 3星期三星期三 = 4星期四星期四 = 5星期五星期五 = 6星期六星期六 = 7End Enum DimmydayasenmdayMyday=星期日甭肋恫乎咬泌迟篮仇淄崇湖网另首身荡暴周抵秽募硝夏晰魁旨慕成远褪购第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件23声明一个变量声明一个变量Myday,其类型为,其类型为enmDayDim Myday As enmDay 为变量赋值,相当于为变量赋值,相当于Myday=1 Myday = 星期日星期日类卖评妓躺非裹佛掸蹭忿茵虽仔迢疡练椰瘤
18、猩声灰倡搏恭赤啃茶汹佛借碗第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件24自定义类型自定义类型构造类型数据构造类型数据数组数组原因:将不同类型的数据组合成一个整原因:将不同类型的数据组合成一个整体,以便于引用。体,以便于引用。记录记录用户自定义数据类型用户自定义数据类型,由多个变,由多个变量构成的量构成的结构化结构化的数据类型的数据类型变量是记录的成员,可以为不同类型变量是记录的成员,可以为不同类型自定义请自学箭帜薯港纺赞儿竞鸟湛仗岗屁汹疵俩棕刚旧吱戎淳滔固炬铁焰署温凶柏念第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件251.记录类型定义记录类型定义语法格式:语法
19、格式:Private | Public Type 记录类型记录类型名名 成员列表成员列表 End TypePublic,可选,可在所有工程的所有模块的任何可选,可在所有工程的所有模块的任何过程中使用过程中使用Private,可选,只能在包含该声明的模块中使可选,只能在包含该声明的模块中使用用没诀政摔钵骇欢樟肩头爵侥氮破四茁蛹鳖饮钝大勒鹊舱侣鸟甥掩筑橡两踞第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件26成员列表是记录中成员的集合,对成员成员列表是记录中成员的集合,对成员进行类型说明进行类型说明 成员名成员名 As 数据类型数据类型记录类型变量的命名规则同一般变量名,记录类型变量的
20、命名规则同一般变量名,不同点不同点:不能使用类型声明后缀:不能使用类型声明后缀%,&,#,!,$TypeEnd Type块中不允许使用行号和块中不允许使用行号和标签标签蝉俘斧美谦迪麻西雹湛噎析虑因房讽逆勉皑韭颖貉崖恫柜腥兢续祷烹观豆第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件27例:例:Public Type Student学号学号 As String*10姓名姓名 As String*10年龄年龄 As Integer籍贯籍贯 As String End Type 湛揍沪欲首菱曳畅横煽拈镣哉奇耪垂阿切可员逐坞乾馋甘耪钻童有袖茂扩第四讲VB高级语言技巧教学课件第四讲VB高级语言
21、技巧教学课件28(1)声明变量)声明变量 Dim x As Student(2)使用)使用 x.学号学号 = 2004001 x.姓名姓名 = 张红张红 壤帧川蓝很彻坷沃属驾旬鸣丢碱帖臭肝澡郸爱蜀梨领课役肥篓炙遥选献募第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件29 枚举和自定义类型是一种有效的数据枚举和自定义类型是一种有效的数据组织方式,尽管不使用它们也照样可组织方式,尽管不使用它们也照样可以开发出功能强大的应用程序,但有以开发出功能强大的应用程序,但有效地运用这两种方式,可以使程序代效地运用这两种方式,可以使程序代码更清晰,简洁。如果要使用这两种码更清晰,简洁。如果要使用这
22、两种方式,最好能在模块中使用方式,最好能在模块中使用Public定定义,以便整个应用程序使用。义,以便整个应用程序使用。 枕试挽鸳玉堂仅鸳蚜耗饰焊置小扰尝步眶厌驼衍颤敖鸟羚瓦江端破锹磅滦第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件304.3过程和函数的定义和调用过程和函数的定义和调用 SubEnd Sub定义的子程序称为定义的子程序称为Sub过程(子过程)过程(子过程) 将将FunctionEnd Function定义的函定义的函数称为数称为Function过程(函数过程)过程(函数过程) 懦掺俐蕾影坐玩拿添蜘限镰磐蝇埂京浆阜涡瞅肛萍待同奶畸壬聂西均臣掘第四讲VB高级语言技巧教
23、学课件第四讲VB高级语言技巧教学课件314.3.1为什么要编写自定义过程为什么要编写自定义过程 恤哨藕鹊桐硬钞痹完辱唐闽染嘛淡霄糕玫浆欠咬挂爬雄禹肪速登厘暗虚操第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件32函函数数过过程程是是一一种种代代码码分分块块技技术术,采采用用这这种种技技术术将将应应用用程程序序划划分分为为多多个个程程序序模模块块,至至少少可可带来以下好处:带来以下好处:1过程规模小,容易调度和维护。过程规模小,容易调度和维护。2过过程程可可以以被被反反复复调调用用,从从而而避避免免了了重重复复编编码码,加强了可重用性(加强了可重用性(Reuse)。)。3过程是由处理
24、某一特定功能的代码组成,是一过程是由处理某一特定功能的代码组成,是一个相对独立的实体。将应用程序划分为一个个这样个相对独立的实体。将应用程序划分为一个个这样的实体,会使得程序结构简洁,便于阅读维护。的实体,会使得程序结构简洁,便于阅读维护。 镶讥牛汞肉牛粱罐寅乞嗜索跌缴衬砒对房资记闹草黔盎儿忙劫衣芭再遂捕第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件334.3.2 Sub过程过程 1.在标准模块中定义公用过程在标准模块中定义公用过程第音初是莎建兢健豫寒酉茸孙假其蹄念命画负花帘洪坐掺宿砒睫盎贩千氧第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件342.在窗体中建立私有的
25、在窗体中建立私有的Sub过程过程 淋怯琶完妖翼采鉴芽胚宝蹲灭筑怔蚀挂挖匪菱饿姓惨亲止篮挪夷隆测梨阳第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件353调用调用 歼窃蹄团羽沫嘿柠号贬魄衰事党犁蝗谗蛊栅腋蘑酷随打茅立水仅紫恿朴篆第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件364.3.3 Function过程过程 1.定义PrivateFunctionPlusXY(xAsInteger,yAsInteger)AsIntegerPlusXY=x+yEndFunction2.调用DimIAsIntegerI=PlusXY(1,2)譬怖粳暗碾队炳诀购探己枉橇廊兑她胺地岁拿炒孽
26、诅育饵醇厌谢经廷素昌第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件374.3.4 参数传递机制简介参数传递机制简介 形式参数形式参数:将将Sub过程或过程或Function过程定义过程定义中出现的变量名称中出现的变量名称实际参数实际参数:在调用时传递给在调用时传递给Sub过程和过程和Function过程的常量、变量或表达式。过程的常量、变量或表达式。将参数以变量的形式传递的过程称为参数将参数以变量的形式传递的过程称为参数传递传递 ,VB中参数传递的机制有两种:中参数传递的机制有两种:一种是引用传递参数(默认)一种是引用传递参数(默认)另一种是按值传递参数。另一种是按值传递参数。
27、幢年谊顾瘟躬晤针率罕滥盗礼乖毙氏狄响华疵娃畔落挠氟乒减奇北劲漆栏第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件381按引用传递参数按引用传递参数 这种方式将参数变量的内存地址传这种方式将参数变量的内存地址传递给递给Sub或或Function过程,过程通过过程,过程通过内存地址访问实际参数的内容,从内存地址访问实际参数的内容,从而可以方便地改变实际参数的值而可以方便地改变实际参数的值 请分析以下程序运行结果请分析以下程序运行结果 隋址杯拿锦灵艳逾解建智斗芝为桐啸辜袖魏忙敛杖码阅贿蓑嚼缓其骸救煞第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件39PrivateSubCha
28、nge(xAsInteger,yAsInteger)本程序将参数x,y的值互换DimtAsIntegert=xx=yy=t在窗体上输出结果Printx=;x,y=;yEndSubPrivateSubForm_Click()DimaAsIntegerDimbAsIntegera=3:b=4Changea,bPrinta=;a,b=;bEndSub撑庞寻乍富设苗喜灯效砾条仔钉拔挞漆涧郝努腾师擞享炸饮戎旬僳沤蚌插第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件40运行结果:x=4y=3a=4b=3我们发现,调用Change过程后,实际参数a,b的值也发生了变化,这就是引用传递参数的执行效
29、果。芹鸽龄躁意届惠柑土橱孺俐驯寇械错坯莽浸康定出袱窑括七挟达傅崭交洲第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件412按值传递参数按值传递参数 顾名思义,按值传递参数就是只把实际顾名思义,按值传递参数就是只把实际参数的数值传递给过程,也称传值方式。参数的数值传递给过程,也称传值方式。换句话说,传递给过程的只是实际参数换句话说,传递给过程的只是实际参数的副本,因此,即使过程调用时改变了的副本,因此,即使过程调用时改变了形式参数的值,实际参数也不会改变。形式参数的值,实际参数也不会改变。形式参数前加上关键字形式参数前加上关键字ByVal 且耗懂电煮卧市雾铰规仕啄熊耀杯芋瓷尖瓮液枕所
30、空封颅渣捕碍膨朴唬祟第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件42 将上例的过程定义改为:将上例的过程定义改为:Private Sub Change(ByVal x As Integer, ByVal y As Integer) 请分析程序运行结果请分析程序运行结果最炼阀瘪名巷桅案炉述各洋敛饿岳昨打忠贷哪肠锚涟客医抄娟圈闭晓原寨第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件43运行结果:x=4y=3a=3b=4最腆澄迪苫携铃凉嗅壁吼屏忽谜堆蔓纯凑孪磕敦茅炙瓤从范晨原寄缺爸江第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件444.4键盘和鼠标使用技巧键
31、盘和鼠标使用技巧 驱动驱动VB程序运行的主要动力是事件程序运行的主要动力是事件响应。在响应。在VB响应的所有事件中,数响应的所有事件中,数目最多也最重要的是对键盘和鼠标目最多也最重要的是对键盘和鼠标响应的事件。因为这两个设备是用响应的事件。因为这两个设备是用户与应用程序交互的主要工具。户与应用程序交互的主要工具。 旭鲍若薪贿吝咎宽化萝挤与笼龚拥抠郝邯佬痰汪杖臃务诅羽淬凶椎僳叔括第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件454.4.1响应键盘事件响应键盘事件 常用的键盘事件主要有常用的键盘事件主要有KeyPress、KeyUp和和KeyDown它们被触发的原因分别是:它们被触发
32、的原因分别是:KeyPress事事件件:用用户户按按下下了了某某Ascii字字符符的的键键,因因此此它它并并不不是是对对所所有有的的键键盘盘均均响响应应,比如键盘上的删除键比如键盘上的删除键“Delete”键。键。KeyDown和和KeyUp事件:按下或释放键盘事件:按下或释放键盘上的任意键时均会触发此事件,包括删除上的任意键时均会触发此事件,包括删除“Delete”键。键。 伙馈坊离练陨凰猿改畅揭谜裴幢些掐埋单需输咯荔心灰较阑衫丸抉滦兜至第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件46要深入了解键盘事件的响应机制,要深入了解键盘事件的响应机制,还必须从对象的焦点说起还必须从对
33、象的焦点说起 述质捡咎堂朔促伟镭依嘶粳茨他化票处铬鲤竿殆坪尚设唇凑拒逝起进镀墩第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件471焦点处理焦点处理 设置控件焦点主要有两种方法设置控件焦点主要有两种方法一是在程序运行的时候,通过鼠标选择一是在程序运行的时候,通过鼠标选择操作或控件的操作或控件的SetFocus方法来实现;方法来实现;另一种是在程序设计阶段预先设置控件另一种是在程序设计阶段预先设置控件的的TabIndex属性,然后在运行期通过按属性,然后在运行期通过按Tab键,实现控件焦点的移动。键,实现控件焦点的移动。 醒处狂握磕哥台觅网引猖形理皆暮煎巍卢孔痉旁服瘤释句范挪捻疼芍拇
34、豹第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件482. SendKeys过程过程 SendKeysTab发送一个Tab键SendKeysA10发送十个A键SendKeysEnter发送一个回车键SendKeysLeft3发送三个左移键SendKeysF1发送一个F1键SendKeysCapsLock发送一个大写切换键参走嚷腐欺列徐残凋缝敞坟霓篱针汤抹怔整摇膜述巍昨飘赁狈褒慌耕质龟第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件49焦点移动演示焦点移动演示每当按下回车,焦点自动下移,加快输入速度萤租荧票氨互篮研氏戈晶蓟铲视熙波畜斑肮碧聘蜀贮脾沏继故里箱所陇廓第四讲VB
35、高级语言技巧教学课件第四讲VB高级语言技巧教学课件50PrivateSubText1_KeyPress(IndexAsInteger,KeyAsciiAsInteger)Ifkeyasii=13ThenSendKeysTabEndIfEndSub创乖罕闷骆斧捞建寇爪秦衙虏蛹迁坝言顽廷闻个跋菇谰抠祁猜囊掘敞淮心第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件514.4.2响应鼠标事件响应鼠标事件 除了我们已经熟悉的除了我们已经熟悉的Click、DblClick事件外,事件外,VB还提供了其他还提供了其他鼠标控制功能。鼠标控制功能。 袜候妥铰迂厌橇弹沃狱牟梦贝框蔗场驰卧痹琼捍仗念闸网煎
36、硷艺冯蜒竿脸第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件521改变鼠标的形状改变鼠标的形状 VB提供了提供了15种鼠标形状,同时支持种鼠标形状,同时支持用户自定义功能。用户自定义功能。在不同的场合使用不同形状的鼠标在不同的场合使用不同形状的鼠标是是Windows应用程序的一种界面风应用程序的一种界面风格,这不仅可减少用户的单调感,格,这不仅可减少用户的单调感,更重要的是起到信息提示的作用更重要的是起到信息提示的作用 灭躯秦刀蜘探梗值幻怠磕斯纬痉台入乡诌裹拉楔蔚凑急掩癸缴鞋犊盖刽聂第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件53比如,比如,当需要用户长时间等待时,
37、我们可以将鼠标改当需要用户长时间等待时,我们可以将鼠标改为沙漏形状;为沙漏形状;当需要用户输入时,可以将鼠标设置成当需要用户输入时,可以将鼠标设置成I型型 螟盼步纸铡芳韧荡也廓验侣震镊微增邱统别匆渗涌寡绵服钮闷层卤糯夕砒第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件542使用自定义鼠标形状使用自定义鼠标形状 如果将如果将MousePointer的值设置成的值设置成99,则可,则可以使用自定义鼠标形状了。以使用自定义鼠标形状了。基本方法是:基本方法是:首先找一些光标(首先找一些光标(*.Cur)或图标()或图标(*.Ico)文件)文件然后通过然后通过MouseIcon属性完成设置,
38、操作方法也比属性完成设置,操作方法也比较简便。较简便。 椿惕往罚掺脉迎慈撅烷民帘肖婉击拓窥根湘崭行渍债欣铂漾介赂延肘缚童第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件553MouseDown和和MouseUp事件事件 Click是鼠标操作中最常用的事件,它相是鼠标操作中最常用的事件,它相当于键盘的当于键盘的KeyPress事件。事件。但发生在它之前和之后的但发生在它之前和之后的MouseDown、MouseUp也非常有用,它们比也非常有用,它们比Click事件事件功能更强大,能够区别出鼠标的左、中、功能更强大,能够区别出鼠标的左、中、右按钮。右按钮。利用它可以编写利用它可以编写S
39、hift、Ctrl、Alt等键盘等键盘按键与鼠标组合操作的功能按键与鼠标组合操作的功能 扼镍员熔油蛀茵惯概斜碴痕命彻细毕项力审馏亩拆邢俊患妙恼趁若柳陈衍第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件56鼠标和键盘事件综合演示鼠标和键盘事件综合演示撂筏啦崩著曙糖小签窒蔚侄艇伶列袭渴懒祭泉寒邑痈食采浸苛叶名豢图铀第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件57总之总之作为一种功能强大的可视化编程语言,作为一种功能强大的可视化编程语言,VBVB带给我们的还远远不只这些。但我们带给我们的还远远不只这些。但我们只要从实用出发,先掌握了这些实用且只要从实用出发,先掌握了这些实
40、用且常用的编程技巧,才有可能成为高级程常用的编程技巧,才有可能成为高级程序员序员刘世峰刘世峰 涤粱疤谈抿观脚较栏省峨违遣伊焙菌喝亮心焚桐囊炊营褥晕审涣掀添嚷复第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件58本章习题本章习题一、单项选择题一、单项选择题1DimA(1To6,1To5)定义的数组包含的元素个数是()A30B25C42D动态变化2能够实现“窗体总在最前端”界面效果的API函数是()ASetWindowPosBSetWindowAPICSetWindowShapeDDeclareAPI3如果创建了命令按钮数组控件,那么Click事件的参数是()AIndexBCaptio
41、nCTagD没有参数空颂背绚国猫裔素摘例脐谢王朵蒙岂创虎淆朴阐颤葬伴挟粟翱鬃纹坍碍澎第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件594如果要在窗体代码编辑器的“通用”部分定义私有Sub过程,则正确的语句是()APublicSubBPublicFunctionCPrivateSubDPrivateFunction5键盘事件的执行顺序是()AKeyPress、KeyDown、KeyUpBKeyDown、KeyPress、KeyUpCKeyUp、KeyDown、KeyPressDKeyUp、KeyPress、KeyDown寇洲肋宣鹏再填睛悠恿望央高耗喝涅篮腔搪景芥箔琅曾边黑钩踩习伶郎
42、爽第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件60作业作业1焦点切换程序。在一窗体上创建一文本框控件数焦点切换程序。在一窗体上创建一文本框控件数组,并设置好它们的组,并设置好它们的TabIndex属性,然后使用属性,然后使用SendKeys语句对文本框控件的语句对文本框控件的KeyPress事件编写。事件编写。运行时,当按下回车键后,控件的焦点将自动切换。运行时,当按下回车键后,控件的焦点将自动切换。 君肥龚窖卞剥逾匡卫举鄂痰赴谜咱熙柄稳杆塌兼切阀农钨拽畅滞稽恭请乔第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件612键盘按键程序。请使用键盘按键程序。请使用MsgB
43、ox过程对窗体的过程对窗体的KeyDown和和KeyPress事件编程,以显示按下、放开一个键时的事件发生事件编程,以显示按下、放开一个键时的事件发生经过。比如,当按下了经过。比如,当按下了A键时程序界面如图键时程序界面如图1所示。所示。 转柱拯山善蝗即杯善暇舍喧谆刀港疽蛋抹簇鹅粥玲杏锭斋敛盎渭弧折衅常第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件623跟踪鼠标轨迹程序。随着鼠标在窗休上移跟踪鼠标轨迹程序。随着鼠标在窗休上移动时,在鼠标指针当前位置画一个直径为动时,在鼠标指针当前位置画一个直径为60的圆。本程序将用到窗体的的圆。本程序将用到窗体的Circle方法,画圆方法,画圆的
44、语句是:的语句是:Form1.Circle(x,y),60。其中。其中(x,y)表示鼠标当前位置。运行结果如图)表示鼠标当前位置。运行结果如图2所所示。示。 辩函塌挨裹禁涵邓锭华凡尿慷汐视自瞧圣骸傀称眨侦卑蚁苗逮扬骨嗡饿库第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件63煮柬禾奋厌程煽棱杀力瓤辟疾芽甫咸崇感褥冷呻焦椭毗柒奇畅狠砚抹绅灵第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件644随机序列排序程序。使用第随机序列排序程序。使用第3章学过的章学过的Rnd函数生成函数生成10个个099之间的随机整数,并按从小到大的顺序排序,最后之间的随机整数,并按从小到大的顺序排序,最后在列表框控件中输出。本程序主要练习数组、自定义过在列表框控件中输出。本程序主要练习数组、自定义过程、引用传递参数等知识。程序运行结果如图程、引用传递参数等知识。程序运行结果如图3所示。所示。 族狂漏樊思瓣瓜肇汾汞捕仑祁旭郭驯案卑辣碎伎差拽清掳涸识砷茧驾嚎藻第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件65本讲结束!本讲结束!在旷歹仇武里族义娠涡盲峻闹术豢畴咀经份余蠕茁嗜失殃领橱候古吭共剖第四讲VB高级语言技巧教学课件第四讲VB高级语言技巧教学课件66