您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VB程序设计电子教案 第6章:输入输出操作管理
第6章输入/输出操作管理键盘响应与鼠标响应文件的数据管理文件系统控件本章学习目标熟练掌握键盘字符、功能键、控制键等各类按键的识别方法掌握MouseDown、MouseUp和MouseMove三类鼠标响应事件的编程方法全面掌握顺序文件、随机文件的打开、读写和关闭操作掌握三种文件系统控件的使用,尤其是如何实现三种控件的功能同步键盘响应示例编写一个可判断功能键F2与Alt、Shift、Ctrl中的哪一个或哪两个进行组合控制的键盘响应示例程序键盘响应示例实现方法选择正确的响应事件如何区分用户按键选择正确的响应事件在VB6.0中,可以响应用户按键的事件有:KeyPress(若有键被按下)、KeyDown(按下某个键)、KeyUp(松开某个键)三种,但KeyPress事件只能区分普通的ASCII码字符,无法判断组合控制键、光标移动键等,因此本示例中必须使用KeyDown或KeyUp事件。如何区分用户按键无论是KeyDown还是KeyUp事件,都有两个参数:KeyCodeAsInteger,ShiftAsInteger,其中Keycode中存放所按键的键值(不区分大小写字符,但区分大小键盘);Shift参数用于表示事件发生时,Shift键、Alt键和Ctrl键的状态。键盘上各键的键值可通过VB对象浏览器了解例如:判断用户是否按下F2键,只需判断KeyCode=vbKeyF2是否成立VB中的三个测试常量VbShiftMask、VbCtrlMask及VbAltMask,其值分别表示1、2和4。常见的测试这三种控制键的方法:先设置以下三个表达式:shiftdown=(ShiftAndvbShiftMask)0altdown=(ShiftAndvbAltMask)0ctrldown=(ShiftAndvbCtrlMask)0如果shiftdownandaltdownandctrldown为真,则表示按下了Shift+Ctrl+Alt键;若shiftdown为真表示按下了Shift键,其余以此类推。键盘响应相关知识点KeyPress、KeyUp和KeyDown键盘响应事件三种事件的响应差异KeyPress事件的使用KeyPress、KeyUp和KeyDown当用户按下并且释放一个ANSI键就会触发KeyPress事件;按下一个键便触发KeyDown事件,释放引发KeyUp事件。在引发键盘事件的同时,用户所按的键盘码作为实参传递给相应的事件过程,供程序判断识别用户的操作。三种事件的响应差异KeyPress只响应按下标准ASCII字符表中对应的键时的事件,如回车键、Tab键、Backspace键等以及标准键盘中的字母、标点、数字键等。KeyDown和KeyUp事件能区分控制键、功能键、大小键盘区域内的字符等KeyPress无法处理的情况,但不区分大小写。KeyDown与KeyUp无本质差别,但若用户需进行单步跟踪调试时,可选择KeyUpKeyPress事件的使用将文本框Text1中输入的文本转换为大写在文本框Text2中显示。PrivateSubText1_KeyPress(KeyAsciiAsInteger)Text2=Text2+UCase(Chr(KeyAscii))EndSub将KeyAscii参数设置为0时,可取消击键事件,这样对象便接收不到字符,即可屏蔽键盘输入。【思考题6-1】无论用户在文本框Text1中输入任何字符,程序均在Text1中显示大写字符A;当用户在Text1中按键时,直接显示所按键的大写。鼠标响应编程示例一个可进行简单的随手涂鸦的画图程序。当用户在窗体上按下鼠标不放并移动时,便可进行随手涂鸦,此时鼠标指针为十字形,松开鼠标,鼠标指针恢复为箭头形状。随手涂鸦的画图程序实现分析选择正确的响应事件:MouseDown,MouseUp及MouseMove如何设置鼠标指针如何实现随手涂鸦如何设置鼠标指针通过MousePointer属性,大部分控件都具有该属性。在程序设计中,往往可通过不同的鼠标指针形状来表达正在执行不同的任务,如用沙漏状表示等待状态;十字形表示画图状态;箭头及问号状表示求助状态等等。对象名.MousePointer=设定值如何实现随手涂鸦可在MouseMove事件过程中,用画线的方法来实现该功能。用Line-(X,Y)表示从当前位置画线到(X,Y)坐标。鼠标响应相关知识点MouseDown、MouseUp和MouseMove事件的应用DragDrop和DragOver事件MouseDown、MouseUp和MouseMove的应用事件过程的一般格式(以窗体对象为例):PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)这三种事件过程所包含的参数完全相同,参数的具体含义参见教材DragDrop和DragOver事件DragOver事件在拖放操作正在进行时发生;DragDrop事件最常见的激活状态是在一个完整的拖放动作完成(如将一外控件拖到另一个对象上,并释放了鼠标)时。DragDrop事件过程用来控制在一个拖动操作完成时将会发生的情况,而DragOver事件过程则用来处理拖动正在进行时需执行的功能。DragDrop和DragOver事件过程事件过程的一般格式(以窗体对象为例):SubForm_DragDrop(SourceAsControl,XAsSingle,YAsSingle)SubForm_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsInteger)其中:Source:表示正在被拖放的控件对象;X,Y:指当前鼠标指针在目标对象上的位置坐标;State:代表源控件被拖动的情况,如是正在向目标范围内拖动(值为0),还是向目标范围外拖动(值为1),或者是在目标范围内部移动(值为2)。文件的数据管理文件管理的基本概念文件的基本操作文件操作应用实例文件管理的基本概念文件的结构特点VB中文件的分类根据文件的存取方式和结构分根据文件的数据性质分根据文件中数据的编码方式分仅讨论顺序文件和随机文件的操作文件的基本操作最基本的三类文件操作:打开文件→读/写文件→关闭文件。相关的判断函数、定位函数等。顺序文件的基本操作顺序文件的打开顺序文件的读操作顺序文件的写操作关闭文件Close‘关闭所有打开的文件Close#文件号[,#文件号...]‘关闭指定的文件顺序文件的打开①格式一:Open文件名forinputas#文件号功能:打开已有数据的文件准备读操作示例:Opend:\TEST1.datForInputAs#1②格式二:Open文件名foroutputas#文件号功能:打开文件准备写操作(会清除原数据)示例:Opend:\test2.datForOutputAs#2③格式三:Open文件名forappendas#文件号功能:打开一文件准备追加数据(原文件可有可无)顺序文件的读操作①格式一:Input#文件号,变量列表功能:从打开的文件中依次读取数据赋于各变量(将逗号和换行符作为数据分隔符)②格式二:LineInput#文件号,变量名从文件中读取一行数据,直到遇到回车chr(13)或回车换行chr(13)+chr(10)为止③格式三:s=Input(字符个数,#文件号)功能:从以Input或Binary方式打开的文件中读取指定个数的字符串(作为函数返回值),字符可包括标点符号、回车、空白等。示例:MyChar=Input(1,#1)‘从#1文件中读取一个字符赋给MyChar变量顺序文件的写操作①格式一:Write#文件号[,表达式表]功能:将各数据项写入文件中,自动以逗号作为数据分隔符,且对字符串数据加双引号。示例:Write#6,zhang;wang;liWrite#6,78;99;67则文件中的数据存储形式为:zhang,wang,li78,99,67②格式二:Print#文件号[,表达式表]功能:按Print格式打印的各数据项写入文件中,不自动加任何分隔符示例:Print#1,zhang;wang;liPrint#1,78;99;67则文件中的数据存储形式为:zhangwangli789967随机文件的基本操作随机文件的打开随机文件的读操作随机文件的写操作随机文件的打开格式:Open文件名forRandomas#文件号[len=记录长度]功能:打开一指定记录长度(0-32K)的随机文件以准备读/写操作,默认记录长度为128字节。随机文件的记录长度可通过Len函数获得,随机文件打开可同时进行读写操作随机文件的读操作格式:Get#文件号,[记录号],记录变量功能:将指定的记录读到记录变量中(起始记录为1)。每读一条记录,记录指针自动指向下一条记录,记录号加1。记录号可缺省,表示读取当前记录,但其后的逗号不可省。随机文件的写操作格式:Put#文件号,[记录号],记录变量功能:将记录变量中的内容写到指定记录号的位置(原位置数据被盖),省略记录号时,指插入到当前记录之后。与文件操作相关的函数FreeFile()LOF(文件号)FileLen(文件名)EOF(文件号)获取文件当前读/写的位置文件操作应用实例【实例6-1】【实例6-1】顺序文件的基本操作。实现分析文件读写操作的实现在读取文件时,可采用LineInput将读取的行信息连接起来暂时保存到某一内存变量以便统一显示在文本框中。LineInput#filenum,sbuffer=buffer+s+Chr(13)+Chr(10)实现分析-考虑程序的健壮性问题(2)避免用户未选取任何文件便进行文件读写操作:可在程序中采用类似于IfLen(Cdl1.FileName)0(其中Cdl1为通用对话框名称)的语句来判断是否已选取了文件名。filesize=FileLen(FileName)‘获取指定文件名的文件长度IffilesizeMaxlenThen‘Maxlen为一自定义常量(65535)MsgBox文件太大了!ExitSubEndIf(1)避免长度超过规定的文件的读写操作:文件操作应用实例【实例6-2】【实例6-2】随机文件的基本操作。【实例6-2】实现分析界面设置文件记录类型的定义如何实现记录的添加显示学生信息时的一些细节问题文件系统控件简介驱动器列表框目录列表框文件列表框驱动器列表框驱动器列表框是供用户操作计算机中各驱动器的一个下拉式列表框,主要属性是Drive,该属性不能在设计状态时设置,只能在程序中被引用或设置。Drive属性的设置方法:对象名.Drive=驱动器名,例如:DriveList1.Drive=”e:”目录列表框目录列表框显示当前驱动器的目录结构及当前目录下的所有子目录,供用户选择其中的某个目录作为当前目录。在目录列表框中,鼠标双击某个目录便可显示该目录下的所有子目录。目录列表框最常用的属性是Path,该属性用于设置或返回当前目录的完整路径,只能在程序中使用,不能在设计阶段设置。目录列表框的最重要事件是Change事件,当用户改变了目录列表框的当前目录后便激发该事件。文件列表框文件列表框的主要属性有:(1)Pattern属性:设置显示文件的类型,如*.bmp,可用分号分隔多种类型。(2)FileName属性:用于返回某个选定的文件名(但不包括文件路径)。(3)Path属性:返回或设置文件列表框的当前路径。(4)ListC
本文标题:VB程序设计电子教案 第6章:输入输出操作管理
链接地址:https://www.777doc.com/doc-3393437 .html