第09章 多重窗体与环境应用ppt课件_第1页
第09章 多重窗体与环境应用ppt课件_第2页
第09章 多重窗体与环境应用ppt课件_第3页
第09章 多重窗体与环境应用ppt课件_第4页
第09章 多重窗体与环境应用ppt课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 多重窗体与环境运用9.1 多重窗体9.2 Visual Basic工程构造 9.1 多重窗体 9.1.1 多重窗体管理 9.1.2 设置启动窗体 9.1.3 窗体处置 9.1.4 多重窗体运用实例 9.1.1 多重窗体管理1. 向工程中添加窗体向工程中添加新窗体有以下三种方法:选择“工程“添加窗体菜单,在翻开的“添加窗体对话框中,选择“窗体翻开,即向工程中添加一个新窗体。新窗体的默许称号和标题(Caption属性)均由集成开发环境自动陈列确定,如第二个创建的窗体,其默许的称号为Form2,标题为Form2。从工具栏上选择“添加窗体按钮,向工程中添加一个新窗体。在工程资源管理器中选定“工

2、程,单击右键翻开快捷菜单,选那么“添加 “添加窗体选项,也可创建一个新窗体。2. 移除工程中的窗体移除工程中多余的窗体有以下两种方法: 在工程资源管理器窗口中选定要删除的窗体,选择“工程“移除窗体菜单项。 在工程资源管理器中选中要删除的窗体,单击右键弹出其快捷菜单,选取“移除窗体选项。3. 保管窗体 在多重窗体运用程序中,每个窗体都要单独保管,方法同单一窗体运用程序一样。在工程资源管理器窗口中选定要保管的窗体,选择“文件“保管窗体菜单或“窗体另存为菜单,或者在工程资源管理器中翻开快捷菜单,选取“保管窗体或“窗体另存为选项。每个窗体保管后都生成一个扩展名为“.frm的文件。9.1.2 设置启动窗

3、体 在多重窗体运用程序中,由于运用程序由多个窗体组成,就是由多个界面组成,因此在程序开场运转时,必需有一个窗体是首先出现的,即启动窗体。VB集成开发环境在创建新工程时,把窗体Form1作为系统缺省的启动窗体。假设用户在实践运用或在调试程序中希望把某个窗体作为启动窗体,在程序运转时首先出如今屏幕上,可用以下方法实现: 选择“工程“工程属性菜单,在“工程属性对话框中选中“通用选项卡。在“启动对象下拉列表中显示了该工程一切的窗体和“Sub Main过程,用户可以根据需求进展选择。假设选用Sub Main过程作为启动对象,那么在程序启动时不加载任何窗体,而是运转一个Sub Main过程,然后根据程序代

4、码来决议能否加载窗体或加载哪一个窗体。9.1.3 窗体处置 在运用相关语句和方法前,大家有必要先了解窗体在运用程序中的三种存在方式:没有被加载:这时,窗体虽然是运用程序的构件,但并没有正式成为工程的组成部分,即窗体不会占用系统资源。加载但没有显示:这时,窗体曾经被加载,成为工程的组成部分,但并没有显示出来。加载并显示:这时,窗体曾经被正式显示出来,当然窗体一定要被加载后才干显示出来。 假设运用程序中只需一个窗体,在程序运转时这个窗领会被自动加载并显示出来。假设运用程序由多个窗体组成,那么会有一个窗体被设置为启动窗体。在程序运转时启动窗体同样被自动加载并显示,而其他的窗体那么必需在曾经启动的窗体

5、中进展加载或显示,这就要用到下面几个相关语句和方法。1. Load语句格式:Load 该语句用于将一个窗体装入内存。执行Load语句后,窗体处于“加载但没有显示形状,此时可以援用窗体中的控件及各种属性,但窗体没有显示出来。2. Unload语句格式:Unload 该语句用于卸载内存中指定的窗体,与Load语句的功能相反。执行Unload语句后,窗体处于“没有被加载形状,不会占用系统资源。注:运用程序终了后,应卸载一切的窗体,否那么会出现这种景象,即运用程序虽已表现为终了形状,但实践上某个窗体仍处于隐藏形状,并占用一定系统资源。Windows系统本身不会自动处置此类问题,这对于程序的运转是极为不

6、利的。为了防止这种情况,应在终了程序前运用Unload语句将窗体从内存中删除。 3. Show方法格式:窗体称号.Show 方式该方法用于显示一个窗体。执行Show方法后,窗体处于“加载并显示形状。窗体称号:可选项,缺省时为当前窗体。方式值:可选项,取值0默许值或1,用以决议窗体是非模态还是模态。方式值为0时,窗体为非模态,此时用户可对其他窗体进展操作;方式值为1时,窗体为模态,此时用户不能对其他窗体进展操作,直到该窗体封锁为止。注:该方法兼有装入和显示窗体两种功能。也就是说,在执行Show方法时,假设窗体没有装入内存,那么执行时Show方法会自动把窗体装入内存,然后显示出来。4. Hide方

7、法格式:窗体称号.Hide该方法用于将窗体隐藏起来。执行Hide方法后,窗体处于“加载但没有显示形状,即窗体仍在内存中,但窗体没有显示出来,与窗体卸载有本质的区别。9.1.4 多重窗体运用实例 和单一窗体的程序设计一样,多重窗体程序设计也根本上分为5步:设计界面、设置属性、编写代码、调试运转、保管程序。关键的问题是作为一个完好的工程,如何把多个窗体“组装起来,并根据程序功能实现窗体间的切换。下面经过一个简单的例子进展阐明。例9.1 设计一个手机话费查询系统,包含三个窗体,即“欢迎窗体,“手机号码窗体和“密码窗体。三个窗体功能如下:1.“欢迎窗体为封面窗体,运转时首先显示。单击“单击此处进入按钮

8、时,翻开“手机号码窗体,“欢迎窗体消逝。2.在“手机号码窗体中输入手机号码后,单击“确定按钮,那么翻开“密码窗体,“手机号码窗体消逝;假设单击“前往按钮,那么前往“欢迎窗体。3.在“密码窗体中输入密码后,单击“确定按钮,只需密码非空那么显示剩余话费;假设单击“查询下一个按钮,那么前往“手机号码窗体;假设单击“前往按钮,那么前往“欢迎窗体。 经过该例可以发现,多重窗体运用程序中,经过相关按钮的设置,实现窗体的显示与隐藏,从而将多个窗体衔接成一个有机的整体。第一个窗体第二个窗体第三个窗体Form1代码:Private Sub Command1_Click() Form2.Show Form1.Hi

9、deEnd SubPrivate Sub Command1_Click() If Text1.Text Then Form3.Show: Form2.HideEnd SubPrivate Sub Command2_Click() Form1.Show Form2.HideEnd SubForm2代码:Private Sub Command1_Click() If Text1.Text Then Text2.Text = 话费End SubPrivate Sub Command2_Click() Form2.Show Form3.HideEnd SubPrivate Sub Command3_C

10、lick() Form1.Show Form3.HideEnd SubForm3代码:9.2 Visual Basic工程构造 9.2.1 规范模块 9.2.2 窗体模块 9.2.3 Sub Main 过程9.2.4 闲置循环与DoEvents语句9.2.1 规范模块 在单一窗体运用程序中,一切的代码都存放在一个窗体模块中,而在多重窗体运用程序中,每个窗体对应一个窗体模块,有些公共变量或通用过程需求在多个窗体中共用,这就需求创建规范模块。规范模块由全局变量声明、模块级声明及通用过程等几部分组成,规范模块文件的扩展名为“.bas。 在规范模块中,全局变量用Public声明,模块级变量用Dim或P

11、rivate声明。当需求声明的全局变量或常量较多时,可以把全局变量声明放在一个单独的规范模块中。一个工程文件可以包含多个规范模块,也可以把原有的规范模块参与工程中。当一个工程中含有多个规范模块时,各模块中的过程不能重名。向工程中添加规范模块有以下三种方法:选择“工程“添加模块菜单,在翻开的“添加模块对话框中,选择“模块翻开,即向工程中添加一个规范模块,规范模块的默许称号为Module1。从工具栏上单击“添加窗体按钮右侧的下拉箭头,在弹出的列表中选择“添加模块选项。在工程资源管理器中选定“工程,右击翻开快捷菜单,选取“添加项下的“添加模块选项,也可创建一个规范模块。创建规范模块后会翻开一个规范模

12、块窗口,即可进展公共变量、常量、类型、外部过程和公共过程的声明。9.2.2 窗体模块 运用程序中的每个窗体都有一个包含其代码的窗体模块。窗体模块包括3部分内容,即通用声明部分、通用过程部分和事件过程部分,窗体模块文件的扩展名为“.frm。假设在文本编辑器中察看窗体模块,那么还会看到窗体及其控件的描画,包括它们的属性设置值。 在窗体模块的通用声明部分中,用Dim语句声明的变量,其作用域为整个窗体模块,即该模块中的一切过程。通用声明部分普通放在代码的最前面,而通用过程和事件过程的位置没有严厉的限制。 在窗体模块中,可以调用规范模块中的过程,也可以调用其它窗体模块中的过程。留意,被调用的过程必需用P

13、ublic定义为公共过程。规范模块中的过程,可直接调用,假设调用其它窗体模块中的过程,那么必需加上过程所在的窗体名。9.2.3 Sub Main过程 Sub Main过程是在规范模块中建立的过程,通常是作为启动过程编写的。假设选用Sub Main过程作为启动对象,那么在程序启动时不加载任何窗体,而是运转一个Sub Main过程,然后根据程序代码来决议能否加载窗体或加载哪一个窗体。1.没有启动窗体时的启动 有时候也许需求运用程序启动时不加载任何窗体。例如:能够想先运转装入数据文件的代码,然后根据数据文件的内容决议显示几个不同窗体中的哪一个。要做到这一点,可以在规范模块中创建一个名为 Main 的

14、子过程,如下面的例子所示。 Sub Main() Dim intStatus As Integer 调用一个函数过程来检验用户形状 intStatus = GetUserStatus() 根据形状显示某个启动窗体 If intStatus = 1 Then frmMain.Show Else frmPassword.Show End IfEnd Sub需求留意的是,Sub Main过程必需在规范模块中创建,不能在窗体模块内。一个工程可以含有多个规范模块,但Sub Main过程只能有一个。Sub Main过程通常是作为启动过程编写的,但是Visual Basic并不可以自动识别Sub Main过

15、程,也就是说,并不自动把它作为启动过程。假设将 Sub Main 过程设为启动对象,需求选择“工程“工程属性菜单,在“工程属性对话框中选中“通用选项卡,在“启动对象下拉列表中选定“Sub Main。2.显示启动时的快速显示 假设启动时有一个较长的执行过程,例如要从数据库中装入大量数据或者要装入一些大型位图,这时能够希望在启动时给出一个快速显示。快速显示是一个窗体,它通常显示的是诸如运用程序名,版权信息和一个简单的位图等内容。启动 Visual Basic 时所显示的屏幕就是一个快速显示。 当一些启动例程正在执行时,快速显示能吸援用户的留意,呵斥运用程序装载很快的错觉。当这些启动例程完成后,可以

16、装载第一个窗体并卸载快速显示。对于快速显示的设计,应尽量简单为好。假设运用大量位图或者大量控件,那么快速显示本身装载将会变慢。 假设要显示快速显示,需求将Sub Main 过程作为启动对象,并用 Show 方法显示该窗体:Private Sub Main() frmSplash.Show 显示快速显示 在此处添加启动过程。 . . frmMain.Show 显示主窗体 Unload frmSplash 卸载快速显示End Sub例9.2 设计一个“古诗选读程序,该程序由7个窗体组成。分别为快速显示窗体、封面窗体、列表窗体以及4个用来显示古诗内容的窗体。程序运转后,在装载数据时显示快速显示窗体,

17、然后显示封面窗体并卸载快速显示,接着显示列表窗体,在该窗体中列出所要阅读的古诗目录4个,双击某个目录后,在另一个窗体的文本框中显示相应的诗文内容。9.2.4 闲置循环与DoEvents语句 Visual Basic属于事件驱动型言语,即只需当发生某个事件时,才执行相应的程序,否那么,运用程序会处于“闲置形状。另一方面,当Visual Basic执行一个过程时,将停顿对其它事件如鼠标事件的处置,直至执行完End Sub或End Function指令为止。为了改动这种执行顺序,VB提供了闲置循环Idle Loop和DoEvents语句。 闲置循环就是当运用程序处于闲置形状时,用一个循环来执行其它操

18、作。简言之,闲置循环就是运用程序在闲置形状下执行的循环。但执行闲置循环又会占用全部CPU时间,不允许执行其它事件过程。为此,Visual Basic提供了一个DoEvents语句,无论何时,一执行到DoEvents语句,就会把系统的控制权交给周围环境运用,然后再回到原来程序继续执行。 DoEvents既可以作为语句运用,也可以作为函数运用。作为函数运用时,前往值为当前装入Visual Basic运用程序任务区的窗体号,假设不想运用这个前往值,那么可以随意用一个变量接纳前往值。 DoEvents语句格式为: DoEventsDoEvents函数格式为: 窗体号 | 变量名=DoEvents() 例9.3 编写程序,实验闲置循环和DoEvents语句。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论