Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用

上传人:E**** 文档编号:89183820 上传时间:2019-05-20 格式:PPT 页数:27 大小:238.50KB
返回 下载 相关 举报
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用_第1页
第1页 / 共27页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用_第2页
第2页 / 共27页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用_第3页
第3页 / 共27页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用_第4页
第4页 / 共27页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用》由会员分享,可在线阅读,更多相关《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第10章 多重窗体与环境应用(27页珍藏版)》请在金锄头文库上搜索。

1、第10章 多重窗体与环境应用,第10章 多重窗体与环境应用,10.1 多重窗体与多文档窗体 Visual Basic允许在一个工程(程序)中使用多个窗体。多窗体程序一般有两种形式,单文档界面(SDI)和多文档界面(MDI)。前者又称为多重窗体界面,每个窗体都是独立的、平等的;后者所包含的多个窗体则被放置在一个(父)窗体中,父窗体为应用程序中所有的(子)窗体提供工作空间。,10.1.1 建立多重窗体应用程序 多重窗体应用程序的代码是针对各个窗体编写的,因此其设计基础是单个窗体的设计。而在多重窗体应用程序中添加和删除窗体的操作需要使用“工程”菜单。 1. 在工程中添加窗体 在当前工程中添加一个新的

2、窗体有3种方法: 在“工程”菜单中选择“添加窗体”菜单项。 在工具栏中选择“添加”,单击其下拉箭头,从弹出的列表中选择“添加窗体”。 在工程资源管理器中的工程图标上单击鼠标右键,打开快捷菜单,选择“添加”子菜单下的“添加窗体”选项。,图10-1 “添加窗体”对话框 添加的新窗体(设为第二个)被命名为Form2,后续的窗体则分别命名为Form3、Form4等等。可以在属性窗口修改新窗体的名称。 2. 在工程中删除窗体 从工程中删除窗体的方法有两种: 先选定欲删除的窗体,然后在“工程”菜单中选择“移除窗体名”。 在工程资源管理器中欲删除的窗体名上单击鼠标右键,打开快捷菜单,选择“移除窗体名”。,3

3、. 保存窗体 每建立一个新的窗体,都应将窗体存盘,一个窗体保存在一个扩展名为.frm的窗体文件中。保存窗体可以在“文件”菜单中选择“保存窗体名”或“窗体名另存为”选项。 对于新建立的工程,在“文件”菜单中选择“保存工程”或“工程另存为”选项,系统将自动弹出对话框,提示用户保存工程的各个文件,如标准模块文件(.bas)、窗体文件(.frm)、工程文件(.vbp)。,4. 使用工程资源管理器 多重窗体实际上是单一窗体的集合,每个窗体都需要独立进行创建和修改。在设计时,利用工程资源管理器可以在各个窗体间进行切换(如图10-2所示)。 图10-2 “工程资源管理器”,10.1.2 多重窗体程序的执行

4、在单窗体工程中,所有的操作都在一个窗体中完成,不需要在多个窗体间切换。而在多窗体工程中,则需要打开、关闭、显示或隐藏指定的窗体,下面介绍相应的语句和方法。 1. 加载与卸载窗体 加载窗体是指将窗体文件装入内存,而卸载窗体是指将窗体从内存中删除。VB有两条语句专门用于对窗体进行加载与卸载的操作:Load语句和Unload语句。,1) Load语句是加载窗体的命令,其语法格式为: Load窗体名 其中窗体名即窗体的Name属性。执行Load语句后,可以引用窗体中的各对象,如控件及其各种属性,但此时窗体并没有显示出来。 2) Unload语句是卸载窗体的命令,其语法格式为: Unload窗体名 该语

5、句与Load语句的功能相反,它清除内存中指定的窗体。,2. 显示与隐藏窗体 窗体用Load语句加载后,并没有被显示出来。若要显示窗体,可以使用窗体的Show方法,其语法格式为: 窗体名. Show 窗体模式 如果省略窗体名,则显示当前窗体。窗体模式用来指定窗体状态,取值为1或0。当取值为1时,窗体为“模态型”,屏幕中只有该窗体为活动窗口,其它窗口都不能被操作。 当取值为0时,窗体为“非模态型”。 Show方法兼有加载与显示窗体的两种功能。在执行Show方法时,若窗体不在内存中,则Show自动加载窗体并显示出来。,若要暂时关闭窗体而不将窗体卸载,可以使用窗体的Hide方法将窗体隐藏起来,其语法格

6、式为: 窗体名. Hide 窗体模式 Hide方法将窗体隐藏起来,即不在屏幕上显示,但仍在内存中。 说明:窗体显示时,其Visible属性为True,隐藏时Visible属性为False。也可以在代码中通过修改Visible属性来显示或隐藏窗体。,3. 启动窗体 当工程包含多个窗体的时候,VB规定,必须指定其中一个窗体作为“启动窗体”。如果不指定启动窗体,则系统默认第1个建立的窗体为启动窗体。只有启动窗体才能在工程运行时自动显示出来,其他窗体必须通过Show方法才能看到。 指定启动窗体的步骤是: 1) 选择“工程”菜单中的“工程名属性”选项,打开“工程属性”对话框。 2) 选择“通用”选项卡,

7、在“启动对象”下拉列表中,选择指定的窗体作为启动窗体。 3) 按“确定”按钮。,4. 程序的关闭 应用程序结束时,应卸载所有的窗体。若仍有隐藏的窗体存在,则程序继续运行。使用End语句结束程序,系统自动卸载工程中的所有窗体。,10.1.3 Sub Main过程 在一个含有多个窗体或多个工程的应用程序中,有时候需要在显示多个窗体之前对一些条件进行初始化;有时候也许要应用程序启动时不加载任何窗体。例如:可能想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。即需要在启动程序时执行一个特定的过程。在VB中,这样的过程称为启动过程,并命名为Sub Main。例如:,Su

8、b Main过程不能在窗体模块内,必须在标准模块中。其建立方法如下: 1) 选择“工程”菜单中的“添加模块”菜单项。 2) 在打开的“添加模块”对话框中按“打开”按钮。 3) 在该模块(默认名称为Module1)的代码窗口中键入:Sub Main后按回车键,系统自动给出过程的开始行和结束行。 4) 在其中输入过程代码,并保存模块文件Module1.bas。 5) 选择“工程”菜单中的“工程属性”菜单项,打开“工程属性”对话框。 6) 选择“通用”选项卡,在“启动对象”下拉列表中,选择Sub Main,并按“确定”按钮。,10.1.4 多重窗体程序应用 【例10-1】为应用程序增加一个“登录”子

9、窗体来控制非法用户的使用,如图10-4所示。 图10-4 “登录”子窗体Form2与应用程序窗体Form1 选择“工程”菜单中的“添加窗体”菜单项,打开“添加窗体”对话框。设置对象属性如图10-4。,设计“登录”子窗体Form2中代码。 编写命令按钮Command1(确定)的Click事件代码: Private Sub Command1_Click() If LCase(Text1.Text) = “abcde“ Then Unload Me 卸载当前窗体 Form1.Show Else MsgBox “对不起,口令错!“ Text1.SelStart = 0 Text1.SelLength

10、= Len(Text1.Text) Text1.SetFocus End If End Sub,编写命令按钮Command2(取消)的Click事件代码: Private Sub Command2_Click() End End Sub 指定启动窗体。 选择“工程”菜单中的“工程名属性”选项,打开“工程属性对话框”,选择“通用”选项卡,在“启动对象”下拉列表中,选择Form2作为启动窗体。 保存窗体。,10.1.5 多文档(MDI)窗体 多文档界面的应用可同时打开多个文档,每个文档都显示在自己的窗口中。包含文档的子窗体被放置在父窗体中,父窗体为应用程序中所有的子窗体提供工作空间。 子窗体实际上

11、就是MDIChild属性设置为True的普通窗体,一个应用程序可以包含多个相似或不相似的MDI子窗体。在运行时,子窗体显示在MDI窗体(父窗体)的工作区内。当子窗体最小化时,它的图标显示在MDI窗体的工作区内,而不是在任务栏中。,创建MDI窗体的一般步骤为: 1) 在“工程”菜单中选择“添加MDI窗体”子菜单,系统显示“添加MDI窗体对话框”,如图10-5所示。 2) 选择“新建”选项卡中的“MDI”窗体,单击“打开”按钮,屏幕上出现一个名字为Mdiform1的MDI窗体(它的底色与普通窗体不同),如图10-6所示。 图10-5 “添加MDI窗体”对话框 图10-6 新添加的MDI窗体,3)

12、单击工具栏上的“启动”按钮运行程序,一个空白的MDI窗体出现在屏幕上。 MDI窗体与普通窗体不同,除非控件具有Align属性(如PictureBox)或者具有不可见界面(如Timer),否则不能将控件直接放置在MDI窗体上。 任何时候,一个应用程序只能有一个MDI窗体。,多文档界面的特点: 1) 所有子窗体均显示在MDI窗体(父窗体)的工作区中。用户可以改变、移动子窗体的大小,但被限制在MDI窗体中。 2) 当最小化一个子窗体时,其图标将显示于MDI窗体上而不是在任务栏中。当最小化MDI窗体时,所有子窗体也被最小化,只有MDI窗体的图标出现在任务栏中。 3) 当最大化一个子窗体时,其标题与MD

13、I窗体的标题一起显示在MDI窗体的标题栏上。 4) MDI窗体和子窗体可以有各自的菜单,当子窗体加载时覆盖MDI窗体的菜单。,10.2 DoEvents函数与闲置循环 在一般情况下,只有当事件发生时VB才会执行相应的过程代码。这就是说,如果没有事件发生,应用程序将处于“闲置”状态。另一方面,当VB执行一个过程时,将停止对其他事件(如鼠标事件)的响应,直至过程执行完毕。也就是说,如果VB处于“忙碌”状态,事件过程只能在队列中等待,直到当前过程结束。 为了改变这种顺序,VB提供了DoEvents函数。,10.2.1 DoEvents函数 使用DoEvents函数,可以将应用程序的控制权交还给Win

14、dows操作系统,以便处理其他事件。当操作系统处理完队列中的事件之后,返回控制权。DoEvents函数的语法格式为: DoEvents() 说明: 1) DoEvents函数返回一个Integer,以代表Visual Basic独立版本中打开的窗体数目。 2) 若省略函数括号,则DoEvents可以作为语句使用。,【例10-2】使用DoEvents,可以在执行循环的过程中进行其他操作,如图10-7所示。 编写命令按钮Command1(开始循环)的Click事件代码: Private Sub Command1_Click() For i = 1 To 200000 DoEvents For j

15、= 1 To 1000 Next j Label1.Caption = i Next End Sub 图10-7 在执行循环的过程中进行其他操作,编写命令按钮Command2(改变标题)的Click事件代码: Private Sub Command2_Click() Me.Caption = Label1.Caption End Sub 说明:运行程序,单击“开始循环”按钮,将显示循环变量i的值。由于加了延时循环,程序的运行时间较长。如果没有DoEvents语句,则程序运行期间不能进行任何操作。有了DoEvents语句,则可以在循环的过程中进行其他操作,如移动窗体、改变窗体大小、单击“改变标题

16、”按钮等。,10.2.2 闲置循环 编写一个循环,当程序处于闲置状态时来执行该循环,这个循环称为“闲置循环”。 【例10-3】编写“闲置循环”,当没有事件发生的时候,作计数循环,如图10-8所示。 首先在工程中添加一个模块Module1,编写其中代码: Public a As Long 声明全局变量 Sub main() Main程序 Form1.Show 显示窗体 Do While DoEvents() 闲置循环 a = a + 1 Loop End Sub 图10-8 闲置循环,编写命令按钮Command1(确定)的Click事件代码: Private Sub Command1_Click() Label1.Caption = a End Sub 3) 将启动对象设为Sub Main。 说明:执行程序,单击“确定”按钮,将显示计数变量a的值。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号