《Visual Basic 60程序设计.ppt》由会员分享,可在线阅读,更多相关《Visual Basic 60程序设计.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 常用控件与窗体,4.1 选择性控件4.2 时钟4.3 菜单设计4.4 多重窗体,单选钮(optionbutton): 必须成组出现,用户在一组单选钮中必须选择也只能选择一项。检查框 (checkbox): 用户根据需要选定其中的一项或多项。,属性: caption: 设置文本注释内容,即单选钮或检查框边上的文本注释。 Alignment:设置一个值,决定单选钮或检查框控件中的文本的对齐方式。 Value :表示单选钮或检查框的状态。为默认属性。,4.1 选择性控件,框架(Frame): 可以用来对其他控件进行分组,以便于用户识别。使用框架控件可以将一个窗体中的各种功能进一步进行分类,让
2、他们的操作互不影响。 列表框 (listbox):列表框是显示项目列表的控件,从中可以选择一项或多项。列表框的内容可以选择,但不能修改。属性: list, listindex ,listcount, selected, sorted, text, multselect.方法: additem ,removeitem,clear,组合框(Combo Box):是一种同时具有文本框和列表框特性的控件。它可以像列表框一样,让用户通过鼠标选择所需要的项目,也可以像文本框那样,用键入方式输入项目。属性 因为组合框是文本框和列表框的组合,所以它的大多数属性都和这两个控件相同。它有一个特殊属性Style,用
3、以确定组合框的形式。 Style:整型。这是组合框的一个重要属性,设置值可为0,1或2,决定组合框的三种形式:即下拉式组合框,简单组合框和下拉式列表框。,滚动条(scrollbar):用来观察数据或确定位置,也可以来做数据的输入工具。主要属性: Max:当滑块处于滚动条最大位置时所代表的值。 Min:当滑块处于滚动条最小位置时所代表的值。SmallChange:当用户单击箭头时,滑块移动的增值量。LargeChange:当用户单击滚动条的空白处时,滑块移动的增值量。 Value:表示滚动条内滑块所处位置所代表的值。重要事件 Scroll滚动事件:在拖动滚动条上的滑块时触发。在单击滚动箭头时不发
4、生。 Change改变事件:在滚动条内滑块的位置改变时发生。,滚动条例题,建立一个水平滚动条(hscroll1)。其max属性为100, min属性为0, smallchange属性为2, largechange属性为10, value属性初始值为50,另有一个文本框(text1),它显示滑块当前位置所代表的值。Sub hscroll1_change()Text1.text=hscroll1.valueEnd sub,4.2时钟,时钟(timer):可以有规律地隔一段时间触发一次Timer(计时器)事件而执行相应的程序代码。程序运行时,时钟控件并不显示在屏幕上,时间显示在标签上。主要属性Int
5、erval:时间间隔。表示两个计数器事件之间的时间间隔。单位为毫秒(0.001S)。 如Interval属性值为500,即每隔半秒产生一个计时器事件。事件Timer:在一个时钟控件的预定的时间间隔过去之后发生。该间隔的频率储存于该控件的 Interval 属性中。,例题:在窗体上显示当前系统时间,建立对象:在窗体上建立一个时钟控件和一个标签控件。设置属性:时钟控件 Interval:1000 标签控件 Borderstyle:1 编写代码: Private Sub tmrclock_Timer() label1.Caption = Time$ time$为日期函数,返回值为系统时间。 End
6、Sub,4.3 菜单设计,绝大多数应用程序都提供菜单。通过菜单对各种命令按功能进行分组,使用户能够更加方便、直观地访问这些命令。又分为弹出菜单和下拉菜单。,菜单概述,菜单编辑器,启动方法: “工具”菜单-菜单编辑器 单击工具栏菜单图标 窗体上单击右键 在快捷菜单- 菜单编辑器,菜单编辑器的使用,1. 标题(Caption):2. 名称(Name):3. 快捷键(Shortcut):4. 下一个(Next):5. 和按钮6. 插入(Insert)按钮:7. 删除(Delete)按钮:8 和按钮:9. 复选(Checked)检查框:10. 有效(Enabled)检查框:11.可见 (visible
7、)检查框:,菜单设计例题1,菜单设计例题2,窗口中第一个菜单标题“计算1”有“加法”和“减法”两个命令。第二个菜单标题“计算2”有三个命令“乘法”,“除法”,“清除”三个命令。“操作数1”和“操作数2”下面的两个文本框用来输入两个数据。“计算结果”下面的标签用来显示两个操作数的计算结果。,解题步骤,建立控件:6个控件属性设置:,设计菜单:打开菜单编辑器,按下表对每个菜单项作设置。,编写事件过程代码:,Dim x As SinglePrivate Sub add_Click( ) 加法x = Val(Txtno1.Text) + Val(Txtno2.Text) 加法lblresult.Capt
8、ion = Str$(x) 数值转换成字符赋给标签End SubPrivate Sub sub_Click( ) 减法x = Val(Txtno1.Text) - Val(Txtno2.Text)lblresult.Caption = Str$(x)End Sub,Private Sub div_Click() 乘法x = Val(Txtno1.Text) * Val(Txtno2.Text)lblresult.Caption = Str$(x)End SubPrivate Sub mul_Click() 除法x = Val(Txtno1.Text) / Val(Txtno2.Text)lbl
9、result.Caption = Str$(x)End SubPrivate Sub clean_Click() 清除Txtno1.Text = Txtno2.Text = lblresult.Caption = Txtno1.SetFocusEnd Sub,运行结果,实际应用中,任何一个大型应用程序都不可能只有一个界面,VB提供了多重窗体程序设计,在多重窗体程序设计中,每个窗体可以有自己的界面和程序代码,完成不同的功能.,4.4多重窗体,添加窗体工程-添加窗体工具条上添加窗体按钮 设置启动对象 在多窗体的程序中,要有一个开始窗体,系统默认缺省窗体名为form1的窗体为启动窗体.如想设置其他窗
10、体为启动窗体,应在工程菜单中的属性中设置.工程-属性-(通用)启动对象,有关窗体的语句和方法,当一个窗体要显示在屏幕上之前,该窗体必须先“建立”,接着被装入内存(load),最后显示(show)在屏幕上.同样,当窗体暂时不需要时,可以从屏幕上隐藏(hide),直至内存中删除(unload).语句 load语句把一个窗体装入内存.执行load语句后,可以引用窗体中的控件及各种属性.但此时窗体并不显示出来. 形式: load 窗体名称 unload语句从内存中删除指定窗体.形式: unload 窗体名称常见用法是unload me ,意义是关闭窗体自己.,方法 show方法显示一个窗体,它兼有加载
11、和显示窗体两种功能.即如窗体不在内存中,则show自动把窗体装入内存,然后再显示出来. 形式: 窗体名称.show模式 其中:窗体名称缺省为当前窗体. 模式有1,0两个值:为1,只能对当前窗体操作,不能对其他窗口操作. 为0(缺省),也可以对其他窗口操作. hide方法将窗体暂时隐藏起来,并没有从内存中删除. 形式: 窗体名称. Hide 其中:窗体名称缺省为当前窗体.,多重窗体例题: 输入和计算一个学生的学习成绩,解题步骤:在工程中添加三个窗体和一个模块在菜单栏点工程添加窗体窗体打开(以上步骤重复两次)在菜单栏点工程添加模块模块打开设置各窗体的属性主窗体属性设置: 名称为frmmain.由一
12、个标签,三个命令按钮组成.,输入窗体属性设置: 名称为frminput.由五个标签,五个文本框,一个命令按钮组成.,输出窗体属性设置: 名称为frmoutput.由二个标签,二个文本框,一个命令按钮组成.,编写程序代码: 定义一个标准模块mult1.bas对全局变量进行声明。,主窗体编写三段事件过程代码Private Sub Cmdinput_Click() 单击输入成绩按钮的代码Frmmain.Hide 隐含主窗体Frminput.Show 显示输入成绩窗体End SubPrivate Sub Cmdoutput_Click() 单击计算成绩按钮的代码Frmmain.Hide 隐含主窗体Fr
13、moutput.Show 显示计算成绩窗体End SubPrivate Sub Cmdend_Click() 单击结束按钮的代码EndEnd Sub,输入窗体编写一段事件过程代码Private Sub cmdreturn_Click() 单击返回按钮的代码smath = Val(Txtmath.Text) 将输入的字符转换成相应的数值赋给变量sphysics = Val(Txtphysics.Text)schemistry = Val(Txtchinese.Text)schinese = Val(Txtchinese.Text)senglish = Val(Txtenglish.Text)Fr
14、minput.Hide 将输入成绩窗体隐藏Frmmain.Show 将主窗体打开End Sub,输出窗体编写两段事件过程代码Private Sub Form_Activate() 激活窗体的代码 Dim stotal As Singlestotal = smath + sphysics + schemistry + schinese + senglish 求和txtaverage.Text = stotal / 5 求平均值Txttotal.Text = stotal 把五门课的总分和平均值分别送到相应的文本框End SubPrivate Sub cmdreturn_Click() 单击返回按
15、钮的代码Frmoutput.Hide 隐藏计算成绩窗体Frmmain.Show 打开主窗体End Sub,4. 多重窗体的保存,在工程资源管理器的列表中选择一个窗体,在文件菜单中选择保存窗体。此步骤在本例中重复3次。在工程资源管理器的列表中选择模块,在文件菜单中选择保存模块。在文件菜单中选择保存工程,起好工程文件名,则建立了一个包含三个窗体,一个模块的工程文件。,第五章 vb与数据库,1 数据库基础数据库技术的产生与发展数据库基本概念 Visual Basic的数据库应用 2 数据库的设计与管理建立数据库数据库的基本操作3 数据控件与数据库网格控件数据控件的属性事件和方法 数据库网格控件,本章
16、要求: 1. 了解数据库及数据库管理系统的概念 2. 了解关系型数据库模型的关系(表),记录、字段、关键字、索引概念等。 3. 学会使用可视化数据管理器建立的数据库是Access数据库(类型名为.mdb) 4. 了解数据库控件的常用属性及与相关控件的绑定,5.1 数据库基本概念,根据数据模型,即实现数据结构化所采用的联系方式,数据库可以分为层次数据库、网状数据库和关系数据库。,关系数据库的有关概念,5.2 数据库的设计与管理,建立数据库,VB提供了两种方法建立数据库,分别是: 可视化数据管理器 数据访问对象(DAO) ,建立数据表(索引),可视化数据管理器 使用可视化数据管理器建立的数据库是A
17、ccess数据库(类型名为.mdb),可以被Access直接打开和操作。在VB环境下,执行“外接程序”菜单中的“可视化数据管理器”命令。,例题:创建一个以学生成绩为内容的数据库,最少要有5名学生,要有学号(唯一,索引),姓名等,字段内容、类型等自己拟定。 打开输入数据窗口,输入数据。,5.3 数据控件与数据库网格控件,1、数据控件,数据控件(Data)提供了一种方便地访问数据库中数据的方法,使用数据控件无须编写代码就可以对VB所支持的各种类型的数据库执行大部分数据访问操作。,数据控件本身不能显示和直接修改记录,只能在与数据控件相关联的数据约束控件中显示各个记录。,可以作数据约束控件的标准控件有
18、以下8种:文本框、标签、图片框、图像框、检查框、列表框、组合框、OLE控件。,2、 数据控件属性 1) Connect属性指定数据库类型 VB可识别的数据库有:MDB文件、DBF文件、DB文件、DF文件和ODBC数据库 2)DatabaseName属性指定具体使用的数据库。 3) RecordType属性确定记录集合类型。 4)RecordSource属性确定具体可访问的数据。 5) EofAction和BofAction属性决定数据控件要采取的操作。 6)RedaOnly属性用于控制能否对记录集进行写操作。 要使关联控件能被数据库约束,必须对控件的两个属性进行设置: 7)DataSource
19、属性通过指定一个有效的数据控件连接一个数据库。 8)DataField属性设置数据库有效的字段。,3、方法(1)Refresh方法可以在数据控件上使用Refresh方法来打开或重新打开数据库(如果 DatabaseName、ReadOnly或Connect属性的设置值发生改变)。(2)UpdateControls方法此方法用于从数据控件的Recordset对象中读取当前记录,并将数据显示在相关约束控件上。(3)UpdateRecord方法当约束控件的内容改变时,如果不移动记录指针,则数据库中的值不会改变,可通过调用UpdateRecord方法来确认对记录的修改,将约束控件中的数据强制写入数据库
20、中。,4、事件(1)Reposition事件当数据控件中移动记录指针改变当前记录时触发该事件。(2)Validate事件如果移动数据控件中记录指针,并且约束控件中的内容已被修改,此时数据库当前记录的内容将被更新,同时触发该事件。,5、记录集Recordset对象,一个Recordset对象代表一个数据库表里的记录,或运行一次查询所得的记录的结果。在“Data”控件中可用3类Recordset对象,即Table(表类型)、Dynaset(动态类型)和Snapshot(快照类型),默认为Dynaset类型。,在实际操作中使用什么记录集关键取决于要完成的任务。表类型的记录集已建立了索引,适合快速定位
21、与排序,但内存开销太大。动态集类型的记录集则适合更新数据,但其搜索速度不及表类型。快照类型的记录集内存开销最小,适合显示只读数据。,使用Recordset对象的属性与方法的一般格式为:数据控件名 . Recordset . 属性/方法,6 、使用Recordset对象连接与访问数据库的记录 (1) Move方法 使用Move方法遍历整个记录集中的记录。Move方法是: MoveFirst或MoveLast方法移至第一个或最后一个记录。 MoveNext或MovePrevious方法移至下一个或上一个记录。 Move n 方法向前或向后移n个记录,n为指定的数值。(2) Find方法 可在指定的
22、Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一个记录,并使之成为当前记录。4种Find方法是: FindFirst或 FindLast方法. 找到满足条件的第一个或最后一个记录。 FindNext或FindPrevious方法找到满足条件的下一个或上一个记录。 4种Find方法的语法格式相同: 数据集合.Find方法 条件,(3) Seek方法使用Seek方法可在Table表中查找与指定索引规则相符的第一个记录,并使之成为当前记录。其语法格式为:数据表对象.Seek comparison , key1,key2(4) Refresh方法如果在设计状态没有为
23、打开数据库控件的有关属性全部赋值,或当RecordSource在运行时被改变后,必须使用激活数据控件的Refresh方法激活这些变化。例如:Data1.DatabaseName = C:VBBiblio.mdbData1.RecordSource = TitlesData1.Refresh(5) Close方法关闭指定的数据库、记录集并释放分配给它的资源其语法格式为:对象.Close,(6)AddNew方法向数据库中添加记录的步骤如下:首先,调用AddNew方法,打开一个空白记录;然后,通过相关约束控件给各字段赋值;最后,单击数据控件上的箭头按钮,移动记录指针,或调用UpdateRecord方
24、法确定所做添加。(7)Delete方法删除数据库中记录的步骤如下:首先,将要删除的记录定位为当前记录;然后,调用Delete方法;最后,移动记录指针,确定所做删除操作。(8)Edit方法编辑数据库中记录的步骤如下:首先,将要修改的记录定位为当前记录;然后,调用Edit方法;然后,通过相关约束控件修改各字段值; 最后,移动记录指针,确定所做编辑操作。,SQL简介(略)SQL概述 结构化查询语言SQL是操作数据库的工业标准语言。在SQL语言中,指定要做什么而不是怎么做。只要告诉SQL需要数据库做什么,可以确切指定想要检索的记录以及按什么顺序检索。可以在设计或运行时对数据控件使用SQL语句。用户提出一个查询,数据库返回所有与该查询匹配的记录。,