《《vb程序设计CH》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《vb程序设计CH》PPT课件.ppt(73页珍藏版)》请在三一办公上搜索。
1、1,Visual Basic程序设计简明教程第三版同济大学计算机系基础学科组http:/021-65980204,2,第1章 Visual Basic程序设计概述第2章 VB可视化编程基础第3章 VB语言基础第4章 VB控制结构第5章 数组和自定义类型第6章 过 程第7章 用户界面设计第8章 数据文件第9章 图形操作第10章 数据库应用基础,目 录,3,教学安排,4,教师通知,5,第7章 用户界面设计,7.1 常用控件7.2 通用对话框7.3 菜单设计 7.4 多重窗体 7.5 鼠标和键盘 7.6 应用程序向导 7.7 综合应用,本章目录,6,7.1 常用控件,7.1.1 单选按钮、复选框和框
2、架1.单选按钮(OptionButton)单选按钮以组的形式出现,允许选择一项。重要属性 Caption属性 按钮上显示的文本Value属性 表示单选按钮的状态:True 被选定 False 未被选定重要事件Click事件 单击后使Value属性为True,本章目录,7,Value属性值为整型,表示复选框的状态:0 vbUnchecked 未选定1 vbChecked 被选定2 vbGrayed 灰色,并显示一个选中标记。重要事件Click事件,2.复选框(CheckBox),例7.1通过单选按钮和复选框设置文本框的字体,本章目录,8,3.框架(Frame),具有容器功能先建立框架,然后将各控
3、件放置其中。Caption属性 框架上的标题文本框架可以响应Click和DoubleClick事件,但一般不需要编写事件过程。,例7.2框架用法示例,本章目录,9,7.1.2滚动条和进度条,滚动条(ScrollBar)通常附在窗体上协助观察数据或确定位置,也可作为数据输入工具。进度条(ProgressBar)用来指示事务处理的进度。滚动条有水平和垂直两种进度条没有水平垂直之分,本章目录,10,滚动条属性,Value 滑块当前位置的值(缺省为0)Min 滑块最小位置值(缺省为0)Max 滑块最大位置值SmallChange 单击滚动条两端的箭头时,Value属性(滑块位置)改变值LargeCha
4、nge 单击滚动条的空白区域时,Value属性改变值,本章目录,11,滚动条事件,Scroll 当拖动滑块时触发 Changed 改变Value属性时触发例7.3计算018之间某个数阶乘,数据由滚动条获得。Max属性为18,Min属性为0,Value初值为0,SmallChange属性为1,LargeChange属性为3例7.4 设计一个调色板应用程序,使用三个滚动条作为三种基本颜色的输入工具。,本章目录,12,ProgressBar控件,Max和Min 设置控件的界限Value 控件执行阶段被填充的数目,直到等于Max属性值。控件显示的填充数是Value属性与Max和Min属性之间的比值在对
5、ProgressBar编程时,必须先确定Value属性上限。例如,下载文件,可将Max设置为文件长度。在该文件下载过程中,将Value属性设置为文件已经下载的字节数。例7.5 用进度条来指示一个大数组的计算进度。,本章目录,13,7.1.3 图形框和图像框,图形框PictureBox控件作用:显示图片,也可作为其他控件的容器在程序运行时装入图形:图形框.Picture=LoadPicture(图形文件名)删除图形框中图形,可用LoadPicture()Autosize属性 True 图形框自动调整大小与图片匹配 False 图形超过图形框的部分将被剪裁掉,本章目录,14,图像框Image,使用
6、方法与图形框相同。图像框占用更少的内存,描绘得更快。图像框内不能存放其他控件Stretch属性 False 图像框自动改变大小适应其中的图形 True 图形根据图像框的大小自动调整尺寸例7.6 本例说明图像框的Stretch属性对加载的图形的影响。,本章目录,15,7.1.4 定时器,定时器以一定的时间间隔产生Timer事件 属性Enabled 为False时定时器不产生Tick事件Interval 触发Timer事件的时间间隔(ms)事件 定时器控件只有一个Timer事件产生Timer事件条件Enabled=True;Interval0例7.7设计一个倒计时应用程序例7.8用一个定时器控制蝴
7、蝶在窗体内的飞舞,本章目录,16,7.2 通用对话框,VB提供了一组基于Windows的标准对话框。利用通用对话框控件可在窗体上创建打开文件、保存文件、颜色、字体、打印等对话框。,例7.9 通过打开文件对话框,选择一个BMP位图文件,在图形框中显示该图片。,通用对话框仅用于应用程序与用户之间进行信息交互,是输入输出的界面,不能真正实现文件打开、文件存储、设置颜色、字体设置、打印等操作,如果想要实现这些功能则需要编程实现。,本章目录,17,通用对话框的基本属性和方法,(1)Action属性和Show方法 打开对话框,该属性只能在程序中赋值,本章目录,18,通用对话框的基本属性和方法,(2)Dia
8、logTiltle属性 设置通用对话框标题(3)CancelError属性 True:选择取消按钮,Err.Number设置为32755(cdCancel)。False:选择取消按钮,没有错误警告。,本章目录,19,7.2.1打开文件对话框,由 ShowOpen方法来实现重要属性:(1)FileName 文件名称,包含路径(2)FileTitle 文件名,不包含路径(3)Filter 确定所显示文件的类型 例如:Text Files|*.txt|所有文件|*.*显示文本文件和所有文件(4)FilterIndex文件列表中指定某类型文件(5)InitDir 初始化路径,本章目录,20,例7.10
9、编写一个简单的文本文件编辑程序,本章目录,21,7.2.2 保存文件对话框,由 ShowSave方法来实现与打开文件对话框的属性基本相同,特有的属性是DefaultExt属性,用于设置缺省的扩展名。例7.11为例7.10中的另存为命令按钮编写代码,保存文本框内的信息。Sub Command2_Click()CommonDialog1.ShowSave Open CommonDialog1.filename For Output As#1 Print#1,Text1.Text 保存文件 Close#1 关闭文件End Sub,本章目录,22,7.2.3 颜色对话框,由ShowColor方法打开颜
10、色对话框重要属性Color,它返回或设置选定的颜色 例7.12 为例7.10中的颜色命令按钮编写事件过程,设置文本框的前景色。Sub Command3_Click()CommonDialog1.ShowColor Text1.ForeColor=CommonDialog1.Color End Sub,设置文件框前景颜色,本章目录,23,7.2.4 字体对话框,由ShowFont方法来实现,例7.13为例7.10中的字体按钮编写设置文本框字体的过程。,Font获取选择的字体Color 选定的颜色,显示字体对话框前必须设置Flags属性,否则将发生不存在字体错误。通常设置为H103。,本章目录,2
11、4,7.3 菜单设计,菜单有下拉式菜单和弹出菜单(上下文菜单)。下拉式菜单的组成结构:,本章目录,25,7.3.1 菜单编辑器,分隔线:在标题栏输入一个连字符“-”标题热键:前面加&,本章目录,26,菜单项除了Name、Visible、Enabled等属性之外,还具有下列重要属性:(1)Text 菜单项上显示的标题文本在字符前加一个&符号构成热键。例如,输入“新建(&N)”,则菜单显示“新建(N)”,N为热键。菜单项的分隔符,输入一个减号“-”。(2)ShortCut 设置菜单项的快捷键。(3)Checked 控制菜单项左边是否显示“”菜单项的事件Click 为菜单项编写程序,例7.15将例7
12、.10中的命令组织成菜单。,本章目录,27,7.3.2 弹出菜单,独立于窗体菜单栏而显示在窗体内的浮动菜单。显示位置取决于单击鼠标键时的位置。设计过程与普通菜单相同。菜单弹出的方法:对象.PopupMenu 菜单名,标志,x,y标志,表示弹出的位置和触发的键Sub Text1_MouseDown()If Button=2 Then PopupMenu EditMenuEnd Sub例7.16 为例7.15中的文本框配置弹出菜单,本章目录,28,7.4 多重窗体,指一个应用程序中有多个并列的普通窗体,每个窗体有自己的界面和代码,完成不同的功能1.添加窗体通过工程|添加窗体命令,每个窗体有独立的F
13、rm文件,同一工程不能有相同名称的窗体。2.设置启动对象通过工程|属性指定启动对象(缺省为第一个创建的窗体)。,本章目录,29,窗体语句,(1)Load语句 装入窗体到内存(不显示)Load 窗体名称(2)Unload语句 从内存删除窗体 Unload 窗体名称 或 Unload Me(3)Show方法 显示窗体 窗体名称.Show 模式 模式为0:关闭才能对其它窗体进行操作 模式为1:可以同时对其它窗体进行操作(4)Hide方法 隐藏窗体窗体名称.Hide,本章目录,30,不同窗体数据的存取,(1)直接访问另一个窗体上的控件数据 另一个窗体名.控件名.属性 Text1=Val(Form2.T
14、ext1)+Val(Form2.Text2)(2)访问另一个窗体中的全局变量 另一个窗体名.全局变量名例7.17多重窗体应用:输入学生五门课程的成绩,计算总分及平均分并在不同窗体内显示。,本章目录,31,7.5 鼠标和键盘,7.5.1 鼠标鼠标事件 需要注意事件发生在哪一个对象上Click、DblClick事件MouseDown 按下任意一个鼠标按钮时被触发MouseUp 释放任意一个鼠标按钮时被触发MouseMove 移动鼠标时被触发,本章目录,32,鼠标,鼠标事件过程中的参数e决定鼠标的当前状态。e.X、e.Y表示当前鼠标的位置;e.Button指示按下或释放了哪个鼠标按钮,其值的意义如下
15、表:,本章目录,33,鼠标,例7.18 显示鼠标器指针所指的位置。例7.19 设计一个最简单的画图程序。程序运行时,按住鼠标右键移动画圆,按住鼠标左键移动画线。,本章目录,34,7.5.2 键盘,1.KeyPress事件 只对会产生ACSII码的按键有响应,参数e包含了与KeyPress事件相关的数据。e.KeyChar 其值为所按键相应的ASCII码值。例如,键盘输入小写A,e.KeyChar的值为“a”。e.Handled 表示本次按键是否被处理过。若它为真,则表示已经被处理过,否则,将传送给Windows进行常规处理。设置e.Handled为真,即可怱略本次按键。利用这个特性可以在某些控
16、件中过滤掉不允许的字符。,本章目录,35,键盘,2.KeyDown事件和KeyUp事件当焦点在某个对象时,用户按下键盘上的任一键,便会引发该对象KeyDown事件,释放按键便触发KeyUp事件。参数e包含了所按键信息(及Shift、Ctrl、Alt键的状态)。e.KeyCode的值为操作的物理键。例7.20编写一个程序,按下Alt+F5组合键可终止程序的运行,本章目录,36,7.6 应用程序向导,用来生成一个应用程序的界面。选择文件|新建工程|VB应用程序向导命令:,本章目录,37,选择菜单和子菜单项,本章目录,38,选取工具栏按钮,本章目录,39,7.7 综合应用,例7.22 设计一个选课程
17、序。“大学计算机基础”是必选课程,一直处于选定状态。限选课程有两组:若选定“第一组”,则下面的两门课程立即处于选定状态;若选定“第二组”,则下面的三门课程处于可选状态,让学生选择,否则处于不可选状态。,本章目录,40,综合应用,例7.22 利用时钟和图像控件,模拟自动红绿灯 分析:改变时钟的Interval属性来延迟不同颜色的灯。例如,红灯延迟2秒,则在切换到红灯后把Interval设置为2000,这样过2秒后发生Timer事件再切换到其它颜色的灯。用变量i控制红绿灯的自动切换,它的值在02之间循环变化:i为0时显示红灯;i为1时显示黄灯;i为2时显示绿灯。,本章目录,41,本章小节,常用控件
18、单选按钮、复选框、框架、列表框、组合框、滚动条、进度条、定时器通用对话框菜单下拉式菜单 MainMenu弹出式菜单 ContextMext两个窗体之间访问 通过窗体对象实例.控件 或模块级公共变量,本章目录,42,思考题,1.有哪几种方法可以在列表框添加选项?2如果要一个定时器每半分钟产生一个Tick控件,则InterVal属性应设置为多少?3在VB.NET中,使用什么方法访问网页?4代码中如何判断用户在通用对话框中选择了“取消”按钮?5创建弹出菜单需要什么控件?通过什么属性才能将控件与弹出菜单建立关联?6什么是模式对话框?什么是非模式对话框?7简述窗体之间数据互访如何才能实现?,本章目录,4
19、3,第8章 数据文件,8.1 文件概述 8.2 顺序访问模式8.3 随机访问模式8.4 二进制访问模式,44,8.1 文件概述,1.记录由若干个相互关联的数据项组成。例如,由学生的学习成绩信息组成的记录,2.文件分类 文件是记录的集合,VB提供了三种访问模式:顺序访问模式:顺序文件,记录可长可短随机访问模式:随机文件,记录的长度相同二进制访问模式:二进制文件,本章目录,45,文件分类,(1)顺序文件按顺序依次把记录写入或读出来的文件。,文本文件 一行一条记录,记录可长可短,以换行符分隔记录。(2)随机文件记录长度相同,根据记录号可直接访问任意一个记录。,(3)二进制文件直接把二进制码存放在文件
20、中。,本章目录,46,8.2 顺序文件,1.打开文件例8.1 对文件C:Scores.dat进行读写Open 文件名 For 模式 As#文件号 模式Output 进行写操作 Input 进行读操作 Append 在末尾追加记录 文件号 1511注意:文件名可以为字符串常量,也可以是字符变量。,本章目录,47,顺序访问模式-写操作,写入数据使用语句Print和Write(1)WriteWrite#文件号,输出列表 Write在数据项之间插入“,”并给字符串加上双引号。例如 Write(1,“One”,“Two”,123)写入到文件后格式:One,Two,123,本章目录,48,(2)Print
21、Print#文件号,输出列表 Print#语句功能与Write 基本相同,区别在于字符串不加双引号,数据之间没有“,”。例如,Print#1,One,Two,123写入到文件后格式:One Two 123例8.2 利用Print 和Write 语句把数据写入文件,本章目录,49,关闭文件,输出语句是将数据送到缓冲区,关闭文件时才将缓冲区中数据写入文件。关闭文件形式:Close(#文件号)例 Close(1)关闭1号文件。如果省略了文件号,Close语句将关闭所有已经打开的文件,本章目录,50,读操作,(1)Input#从打开的顺序文件中读出数据并将数据赋给变量。Input#文件号,变量列表(2
22、)LineInput 读出一行数据 LineInput#文件号,字符串变量说明:读出的数据中不包含回车换行符(3)EOF(文件号)测试文件指针是否到文件末尾(4)LOF(文件号)测试文件的长度,本章目录,51,应用举例,例8.3 设计一个文件加密程序。例8.4 编写顺序文件读写程序。选择“添加数据”,则将一个学生的学号、姓名和成绩(Integer)添加到Score.txt文件中选择“读取数据”,则从文件读取数据并计算总分和平均成绩,最后送入文本框。,本章目录,52,8.3 随机访问模式,随机访问模式中文件的打开和关闭打开文件Open 文件名 For Random As#文件号 Len=记录长度
23、随机文件打开后,可以同时进行写入与读出操作记录长度默认值是128个字节 关闭随机文件 Close(#文件号)例8.5 编写一个随机文件应用程序,本章目录,53,随机访问模式中文件的读写,Put#文件号,记录号,变量名 将一个记录变量的内容,写入所打开的磁盘文件中指定的记录位置处。如果忽略记录号,则在当前记录前插入一条记录。Get#文件号,记录号,变量名 将指定的记录内容读入记录变量中。如果忽略记录号,则表示读出当前记录后的那一条记录 例8.6 编写学生信息管理程序,本章目录,54,8.4 二进制访问模式,二进制访问模式与随机访问模式类似,读写语句也是Get和Put,区别在于二进制模式的访问单位
24、是字节,而随机模式的访问单位是记录例如:Open C:Student.Dat For Binary As#1,本章目录,55,例8.7 编写一个文件复制程序Dim char As ByteOpen C:S.Dat For Binary As#1Open C:S.Bak For Binary As#2Do While Not EOF(1)Get#1,char 读源文件一个字节 Put#2,char 写一个字节到目标文件LoopClose#1 关闭源文件Close#2 关闭源文件,本章目录,56,本章小节,文件 文件是记录的集合,三种访问模式 顺序访问 打开 Open 文件名,模式,文件号 写 P
25、rint Write 读 Input#文件号,变量 LineInput#文件号随机访问Open 文件名 For Random As#文件号 Len=长度 读Get 写 Put二进制访问 与随机访问模式类似,本章目录,57,思考题,1.什么是文件?什么是记录?2.顺序文件和随机文件有何区别?3.请用不同的方法,将文本文件Text.dat中的内容读入字符串变量strTest中(写出程序代码片段)。4.请说明Print和Write语句的区别。5.请说明EOF和LOF函数的功能。,本章目录,58,第9章 图形操作,9.1 图形操作基础9.2 绘图属性9.3 图形方法9.4 综合应用,本章目录,59,9
26、.1 图形操作基础,在VB中绘制图形,其过程一般分为4个步骤:先定义图形载体窗体对象或图形框对象的坐标系。设置线宽,线型、色彩等属性。指定画笔的起终点位置。调用绘图方法绘制图形。例9.1在窗体上绘制2到2之间的正弦曲线,本章目录,60,9.1.2 坐标系统,构成一个坐标系,需要三个要素:坐标原点、坐标度量单位、坐标轴的长度与方向。坐标度量单位由容器对象的ScaleMode属性决定。缺省时为Twip。每英寸1440个Twip,20个Twip为一磅。,本章目录,61,例9.2在Form_Paint 事件中定义窗体的坐标系,使用Scale方法,语法如下:对象.Scale(xLeft,yTop)-(x
27、Right,yBotton),自行定义坐标系,本章目录,62,9.2 绘图属性,9.2.1 当前坐标,CurrentX,CurrentY属性给出窗体或图形框或打印机在绘图时的当前坐标。这两个属性在设计阶段不能使用,使用CLS方法后,CurrentX、CurrentY属性值为0 例9.3用Print方法在窗体上随机显示50个“”和50个“”,本章目录,63,9.2.2 线宽与线型,窗体、图形框或打印机的DrawWidth属性给出这些对象上所画线的宽度或点的大小(以像素为单位,最小值为1)。例9.4 通过改变DrawStyle属性值在窗体上画出不同的线形。,本章目录,64,9.2.3 填充与色彩,
28、FillColor 指定封闭图形的填充颜色FillStyle 指定填充的图案(有8种内部图案)RGB(红,绿,蓝)产生某种颜色 三基色使用0255之间的整数 QBColor(颜色码)015之间的整数例9.5 演示颜色的渐变过程。要定义渐变,可多次调用RGB函数,每次对RGB函数的参数稍作变化。,本章目录,65,9.3 图形方法,9.3.1 Line方法,画直线或矩形:对象.Line(x1,y1)(x2,y2),颜色,BF(x1,y1)为线段的起点坐标或矩形的左上角坐标(x2,y2)为线段的终点坐标或矩形的右下角坐标B表示画矩形;F表示填充矩形例9.6 用Line方法在图形框PictureBox
29、上绘制函数f(x)=x2在区间0.3,1之间积分面积区域,填充为兰色。,本章目录,66,9.3.2 Circle方法,Circle方法用于画圆、椭圆、圆弧和扇形:对象.Circle Step(x,y),半径,颜色,起始角,终止角,长短轴比率 圆弧和扇形通过参数起始角、终止角控制。当起始角、终止角取值在02p时为圆弧,当在起始角、终止角取值前加一负号时,画出扇形,负号表示画圆心到圆弧的径向线。椭圆通过长短轴比率控制,默认值为1时,画圆。例9.7在窗体上绘制由圆环构成的艺术图案。构造图案的算法为:将一个半径为r的圆周等分为n份,以这n个等分点为圆心,以半径r1绘制n个圆。,本章目录,67,9.3.
30、3 Pset方法,Pset方法用于画点:对象.Pset(x,y),颜色例9.8 用Pset方法绘制方程组y1=-5 x 2+2 x+3和y2=x+1的曲线,并求解方程 采用较小的步长,就可使离散的点连接成曲线求解方程实质是找曲线的交点坐标,由于作图时存在误差,故判断时不能用y1=y2,而要使用Abs(y1-y2)误差获得对应的x值。,本章目录,68,9.3.4 Point方法,返回指定点的RGB颜色:对象.Point(x,y)(x,y)指定点的坐标。如果(x,y)点位于对象之外,Point 方法将返回True。例9.9用Point方法获取一个区域的信息并使用Pset方法进行仿真。窗体与图形框的
31、坐标系设置值相同,但窗体的实际宽度和高度比图形框大,故仿真输出时放大了原来的字符。,本章目录,69,9.4 综合应用,例9.10利用绘图方法及绘图属性,根据给定的数据绘制直方图、饼图等统计图形设计思路:采用动态数组存放数据散点图用Pset语句绘制折线图可用Line语句实现;直方图可用带参数BF的Line语句来绘制;饼图绘制用Circle语句,绘图时需要计算出每个绘图数据在圆内占的百分比,定出该数据对应扇形的起始角和终止角,本章目录,70,例9.11 设计程序模拟行星运动设计思路:在时钟的Timer1_Time事件内有规律地改变对象的形状、尺寸或位置,就可形成动画效果。太阳和行星运动用Circl
32、e语句完成。行星在轨道上的方程:x=rx*cos(alfa),y=ry*sin(alfa)窗体的DrawMode属性设置为Xor或Invert,在相同位置上重复绘置相同图形,可起到擦除的作用。,本章目录,71,本章小节,在VB内绘制图形过程 先定义图形载体的坐标系 设置绘图属性(线宽,线型、色彩等)指定画笔的起终点位置 调用绘图方法绘制图形 坐标系定义 Scale绘图方法Line、Circle、Pset、Point,本章目录,72,思考题,1.怎样建立用户坐标系?2.窗体的ScaleHeight、ScaleWidth属性和Height、Width属性有什么区别?3.RGB函数中的参数按什么颜色排列,其有效的数值范围是多少?怎样用RGB函数实现色彩的渐变?4.怎样设置Line控件对象的线宽?5.当用Line方法画线之后,CurrentX与CurrentY在何处?6.当用Circle方法画圆弧和扇形时,若起始角的绝对值大于终止角的绝对值,则圆弧角度在何范围?7.使用Pest绘制像素点的大小由何因素确定?8.怎样用Point方法来比较两张画片,本章目录,73,结 束同济大学计算机系基础学科组http:/021-65980204,