Visual-Basic程序设计-多重窗体与MDI窗体程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Visual-Basic程序设计-多重窗体与MDI窗体程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual Basic 程序设计 多重 窗体 MDI 课件
- 资源描述:
-
1、 多重窗体与多重窗体与MDIMDI窗体概述窗体概述12.1多重窗体程序设计多重窗体程序设计12.2MDIMDI窗体程序设计窗体程序设计 12.3 在多重窗体中,窗体分为模态(在多重窗体中,窗体分为模态(Modal)和非)和非模态(模态(Nonmodal)两种类型。在屏幕上显示后用户)两种类型。在屏幕上显示后用户必须响应的窗体叫模态(必须响应的窗体叫模态(Modal)窗体,除非用户单)窗体,除非用户单击击OK(确定)或(确定)或Cancel(取消)按钮、或者关闭这(取消)按钮、或者关闭这个窗体,否则这种窗体将一直得到输入焦点。用户个窗体,否则这种窗体将一直得到输入焦点。用户可以随意在其间切换的窗
2、体叫非模态(可以随意在其间切换的窗体叫非模态(Nonmodal)窗体或无模式窗体。为了方便用户使用,大多数窗体或无模式窗体。为了方便用户使用,大多数Windows下的应用程序在显示信息时,都使用非模下的应用程序在显示信息时,都使用非模态窗体。因此,在态窗体。因此,在Visual Basic中建立新窗体时,非中建立新窗体时,非模态窗体是缺省设置。窗体的很多属性都可以独立模态窗体是缺省设置。窗体的很多属性都可以独立设置,其中包括窗体的标题、大小、边框类型、前设置,其中包括窗体的标题、大小、边框类型、前景颜色、背景颜色、显示字库和背景画面等。景颜色、背景颜色、显示字库和背景画面等。MDI窗体允许创建
3、在单个容器窗体中包含多个窗窗体允许创建在单个容器窗体中包含多个窗体的应用程序,允许用户同时显示多个文档,每个文体的应用程序,允许用户同时显示多个文档,每个文档显示在它自己的窗体中。档显示在它自己的窗体中。MDI窗体是有父子关系的窗体是有父子关系的窗体,可以根据窗体作用的不同,来确定窗体是父窗窗体,可以根据窗体作用的不同,来确定窗体是父窗体还是子窗体。文档或子窗体被包含在父窗体中,父体还是子窗体。文档或子窗体被包含在父窗体中,父窗体为应用程序中所有的子窗体提供工作空间,用户窗体为应用程序中所有的子窗体提供工作空间,用户在父窗体完成几乎所有的工作。例如:在父窗体完成几乎所有的工作。例如:Micro
4、soft Excel 允许创建并显示不同样式的多文档窗体,每个允许创建并显示不同样式的多文档窗体,每个子窗体都被限制在子窗体都被限制在 Excel 父窗体的区域之内。当最小父窗体的区域之内。当最小化化 Excel父窗体时,所有的文档窗体都被最小化,只父窗体时,所有的文档窗体都被最小化,只有父窗体的图标显示在任务栏中。当关闭有父窗体的图标显示在任务栏中。当关闭Excel父窗父窗体时,所有的文档窗体都被关闭,但关闭某个文档窗体时,所有的文档窗体都被关闭,但关闭某个文档窗口时,口时,Excel父窗体不会被关闭。父窗体不会被关闭。具体什么时候选用单窗体程序,什么时候使用多具体什么时候选用单窗体程序,什
5、么时候使用多重窗体或重窗体或MDI窗体呢?这需要根据应用程序的目的,窗体呢?这需要根据应用程序的目的,来决定使用哪种界面样式最好。例如:日历程序最好来决定使用哪种界面样式最好。例如:日历程序最好设成单窗体程序,因为没有必要同时打开一个以上日设成单窗体程序,因为没有必要同时打开一个以上日历;一个处理保险索赔的应用程序可能要设计成历;一个处理保险索赔的应用程序可能要设计成MDI窗体,使用多文档界面样式,因为一个职员很可能会窗体,使用多文档界面样式,因为一个职员很可能会同时处理一个以上索赔,或者需要对两个索赔进行比同时处理一个以上索赔,或者需要对两个索赔进行比较;而一个管理信息系统(较;而一个管理信
6、息系统(MIS系统),需要完成的系统),需要完成的功能比较多,比如最基本的功能添加、修改、删除和功能比较多,比如最基本的功能添加、修改、删除和查询记录等,这些功能的实现都需要窗体界面,而这查询记录等,这些功能的实现都需要窗体界面,而这些窗体一般都是并列使用,所以像学生成绩管理系统些窗体一般都是并列使用,所以像学生成绩管理系统这样的应用程序,一般设计成多重窗体程序。这样的应用程序,一般设计成多重窗体程序。12.2 12.2 多重窗体程序设计多重窗体程序设计 在多重窗体程序中,要建立的界面有多个在多重窗体程序中,要建立的界面有多个窗体组成,每个窗体的界面的设计与前面学过窗体组成,每个窗体的界面的设
7、计与前面学过的完全一样。程序代码也是针对每个窗体编写的完全一样。程序代码也是针对每个窗体编写的,因此也与单一窗体程序设计中的代码编写的,因此也与单一窗体程序设计中的代码编写类似,只要注意各个窗体之间的相互关系就可类似,只要注意各个窗体之间的相互关系就可以了。以了。多重窗体实际上是单一窗体的集合,而单多重窗体实际上是单一窗体的集合,而单一窗体是多重窗体程序设计的基础。掌握了单一窗体是多重窗体程序设计的基础。掌握了单一窗体程序的设计,多重窗体的程序设计是很一窗体程序的设计,多重窗体的程序设计是很容易的。容易的。1.1.添加窗体添加窗体 如果想在现有的工程中添加一个窗体,需如果想在现有的工程中添加一
8、个窗体,需要使用要使用“添加窗体添加窗体”对话框(如图对话框(如图12-1所示)所示),可以用三种方法打开,可以用三种方法打开“添加窗体添加窗体”对话框:对话框:(1)通过)通过“工程工程”(Project)菜单中的)菜单中的“添添加窗体加窗体”(Add Form)命令)命令 (2)单击工具栏上的)单击工具栏上的“添加窗体添加窗体”按钮按钮 (3)在)在“工程资源管理器工程资源管理器”窗口内单击右键窗口内单击右键,在弹出菜单中选择,在弹出菜单中选择“添加添加”,再在下一级子,再在下一级子菜单中选择菜单中选择“添加窗体添加窗体”图12-1“添加窗体”对话框“新建”选项卡 在在“添加窗体添加窗体”
9、对话框里,可以选择对话框里,可以选择“新建新建”选选项卡新建一个窗体,也可以选择项卡新建一个窗体,也可以选择“现存现存”选项卡把一选项卡把一个属于其他工程的窗体添加到当前工程中,这是因为个属于其他工程的窗体添加到当前工程中,这是因为每个窗体都是以独立的文件保存的(扩展名为每个窗体都是以独立的文件保存的(扩展名为frm)。)。当新建一个窗体时,可以选择欲建立窗体的类型当新建一个窗体时,可以选择欲建立窗体的类型(Visual Basic的不同版本预定义窗体集也不一样),的不同版本预定义窗体集也不一样),默认是建立一个新的空白窗体,你可以选择建立为特默认是建立一个新的空白窗体,你可以选择建立为特定任
10、务设计的半成品窗体。程序中第一个窗体被默认定任务设计的半成品窗体。程序中第一个窗体被默认命名为命名为Form1,后续的窗体则分别命名为,后续的窗体则分别命名为Form2、Form3等,为了便于在代码中引用窗体,最好是根据等,为了便于在代码中引用窗体,最好是根据窗体的功能进行重新命名。窗体的功能进行重新命名。当添加一个已经存在的窗体到当前工程当添加一个已经存在的窗体到当前工程时,有两个问题需要注意:时,有两个问题需要注意:(1)该工程内的每个窗体的)该工程内的每个窗体的Name属性不能属性不能相同,否则不能将现存的窗体添加进来。相同,否则不能将现存的窗体添加进来。(2)在该工程内添加进来的现存窗
11、体实际上)在该工程内添加进来的现存窗体实际上在多个工程中共享,因此,对该窗体所做的在多个工程中共享,因此,对该窗体所做的改变,会影响到共享该窗体的所有工程。改变,会影响到共享该窗体的所有工程。2.2.设置启动对象设置启动对象 在单一窗体程序中,程序的执行没有其他选择,即只能从这在单一窗体程序中,程序的执行没有其他选择,即只能从这个窗体开始执行。多重窗体程序由多个窗体构成,而且多个窗体个窗体开始执行。多重窗体程序由多个窗体构成,而且多个窗体多是并列关系,多是并列关系,Visual Basic怎么知道是从哪个窗体开始执行呢?怎么知道是从哪个窗体开始执行呢?程序运行过程中,首先执行的对象被称为启动对
12、象。程序运行过程中,首先执行的对象被称为启动对象。Visual Basic规定,对于多重窗体程序,必须指定其中一个对象为启动对规定,对于多重窗体程序,必须指定其中一个对象为启动对象。缺省情况下,第一个创建的窗体被默认指定为启动对象,即象。缺省情况下,第一个创建的窗体被默认指定为启动对象,即启动窗体。启动对象既可以是窗体,也可以是启动窗体。启动对象既可以是窗体,也可以是Main子过程。如果子过程。如果启动对象是启动对象是Main子过程,则程序启动时不加载任何窗体,以后由子过程,则程序启动时不加载任何窗体,以后由该过程根据不同的情况决定是否加载或加载哪一个窗体。需要注该过程根据不同的情况决定是否加
13、载或加载哪一个窗体。需要注意的是,意的是,Main子过程必须放在标准模块中,绝对不能放在窗体模子过程必须放在标准模块中,绝对不能放在窗体模块内。块内。可以通过可以通过“工程工程”菜单中菜单中“工程属性工程属性”命令来指定启动对象命令来指定启动对象。执行该命令后,将打开。执行该命令后,将打开“工程属性工程属性”对话框,然后选择该对话对话框,然后选择该对话框中的框中的“通用通用”选项卡,将显示的对话框如图选项卡,将显示的对话框如图12-2所示。所示。图12-2“工程属性”对话框的“通用”选项卡 在图在图12-2所示的对话框中,单击所示的对话框中,单击“启动对象启动对象”栏右端的箭头,将下拉显示栏右
14、端的箭头,将下拉显示当前工程中所有窗体的列表,如图当前工程中所有窗体的列表,如图12-3所示。此时条形光标位于当前启动对象所示。此时条形光标位于当前启动对象上,如果需要改变,则单击作为启动对上,如果需要改变,则单击作为启动对象的名字,然后单击象的名字,然后单击“确定确定”按钮,即按钮,即可把所选择的窗体设置为启动对象。可把所选择的窗体设置为启动对象。图12-3 指定启动对象3.3.与多重窗体程序设计有关的语句和方法与多重窗体程序设计有关的语句和方法 在单窗体程序设计中,所有的操作在单窗体程序设计中,所有的操作都在一个窗体中完成,不需要在多个窗都在一个窗体中完成,不需要在多个窗体间切换。而在多窗
15、体程序中,需要打体间切换。而在多窗体程序中,需要打开、关闭、隐藏或显示指定的窗体,这开、关闭、隐藏或显示指定的窗体,这可以通过相应的语句和方法来实现。可以通过相应的语句和方法来实现。下面是与多重窗体程序设计有关的语下面是与多重窗体程序设计有关的语句和方法:句和方法:(1)Load语句语句 该语句把一个在编程环境中已经建立的窗体装入内存。当该语句把一个在编程环境中已经建立的窗体装入内存。当Visual Basic执行了该语句后,窗体并没有显示出来,只是被调执行了该语句后,窗体并没有显示出来,只是被调入内存,但你可以在程序中的任一事件过程中访问它,而且使用入内存,但你可以在程序中的任一事件过程中访
16、问它,而且使用它所定义的任何属性和方法。用它所定义的任何属性和方法。用Load语句装入新窗体的语法格语句装入新窗体的语法格式为:式为:Load 窗体名称窗体名称 例如,语句:例如,语句:Load Form2,则工程中的名称为,则工程中的名称为Form2的窗的窗体就会被调入内存。如果想把该窗体的体就会被调入内存。如果想把该窗体的Caption属性设置为属性设置为“系系统主界面统主界面”,可在任何事件过程中键入下述语句:,可在任何事件过程中键入下述语句:Form2.Caption=系统主界面系统主界面。在首次使用在首次使用Load语句将窗体调入内存时依次触发窗体的语句将窗体调入内存时依次触发窗体的
17、Initialize和和Load事件。事件。(2)Unload语句语句 该语句与该语句与Load语句的功能相反,它从内存语句的功能相反,它从内存中删除指定的窗体。该语句的语法格式为:中删除指定的窗体。该语句的语法格式为:Unload 窗体名称窗体名称 Unload的一种常见用法是的一种常见用法是Unload Me,其,其意义是关闭窗体自己。在这里,关键字意义是关闭窗体自己。在这里,关键字Me代代表表Unload Me语句所在的窗体。语句所在的窗体。(3)Show 方法方法 该方法用来显示一个窗体,它兼有该方法用来显示一个窗体,它兼有加载和显示窗体两种功能。也就是说,加载和显示窗体两种功能。也就
18、是说,使用使用Show方法时,如果窗体不在内存中方法时,如果窗体不在内存中(即以前没有执行(即以前没有执行Load语句),则语句),则Show方法自动把窗体装入内存,然后再显示方法自动把窗体装入内存,然后再显示出来。出来。Show方法的语法格式为:方法的语法格式为:窗体名称窗体名称.Show 模式模式 如果省略了如果省略了“窗体名称窗体名称”,则显示当前窗体。参数,则显示当前窗体。参数“模式模式”用来确定窗体是以模态加载还是非模态加载,它可以取用来确定窗体是以模态加载还是非模态加载,它可以取0和和1两个两个值(注意不是值(注意不是False和和True)。当)。当“模式模式”值为值为1(或常量
19、(或常量vbModal)时,表示窗体是)时,表示窗体是“模态型模态型”窗体。在这种情况下,鼠标只在此窗体。在这种情况下,鼠标只在此窗体内起作用,不能到其他窗口内操作,只有在关闭该窗口后才窗体内起作用,不能到其他窗口内操作,只有在关闭该窗口后才能对其他窗口进行操作。例如,能对其他窗口进行操作。例如,Microsoft Word中中“帮助帮助”菜单菜单的的“关于关于”命令所打开的对话框窗口就是这种窗口。当命令所打开的对话框窗口就是这种窗口。当“模式模式”值为值为0(或省略该参数)时,表示窗体为(或省略该参数)时,表示窗体为“非模态型非模态型”窗口,不用窗口,不用关闭该窗体就可以对其他窗口进行操作。
20、例如,要以非模态窗体关闭该窗体就可以对其他窗口进行操作。例如,要以非模态窗体形式显示形式显示Form2,可使用如下语句:,可使用如下语句:Form2.Show。Visual Basic提供独立的提供独立的Load语句使程序能够预先将窗体装入语句使程序能够预先将窗体装入内存,这样,内存,这样,Show方法执行得会非常快,用户往往感觉不到任何方法执行得会非常快,用户往往感觉不到任何延迟。建议你最好预先装入窗体,特别是当窗体包含很多对象或延迟。建议你最好预先装入窗体,特别是当窗体包含很多对象或艺术修饰时,这样做尤其必要。艺术修饰时,这样做尤其必要。(4)Hide方法方法 该方法用来将窗体暂时隐藏起来
21、,该方法用来将窗体暂时隐藏起来,但并没有从内存中删除,因此它与但并没有从内存中删除,因此它与Unload语句的作用是不一样的。其语法语句的作用是不一样的。其语法格式为:格式为:窗体名称窗体名称.Hide 当省略窗体名称时,默认隐藏当前当省略窗体名称时,默认隐藏当前窗体。窗体。Hide方法和方法和Unload语句的区别:使用语句的区别:使用Hide方法把窗体隐藏后,窗体虽然看不见了,方法把窗体隐藏后,窗体虽然看不见了,但它但它仍驻留在内存中,可以供程序使用。隐藏窗体仍驻留在内存中,可以供程序使用。隐藏窗体和通过设置窗体的和通过设置窗体的Visible属性使窗体不可见的属性使窗体不可见的效果是相同
22、的。使用效果是相同的。使用Unload语句卸载窗体,是语句卸载窗体,是把窗体从内存中清除,卸载窗体释放了用来存把窗体从内存中清除,卸载窗体释放了用来存贮窗体对象和图形的内存空间,但并不释放窗贮窗体对象和图形的内存空间,但并不释放窗体事件过程占用的空间,这些事件过程常驻内体事件过程占用的空间,这些事件过程常驻内存。窗体被卸载后,其运行时的值和属性也就存。窗体被卸载后,其运行时的值和属性也就丢失了。当再装入该窗体时,这些值恢复为程丢失了。当再装入该窗体时,这些值恢复为程序代码中设定的初始值。序代码中设定的初始值。4.4.不同窗体间数据的存取不同窗体间数据的存取 不同窗体数据的存取分为两种情况:不同
23、窗体数据的存取分为两种情况:(1)存取控件中的属性)存取控件中的属性 在当前窗体中要存取另一个窗体中某个控件的属在当前窗体中要存取另一个窗体中某个控件的属性,表示如下:性,表示如下:另一个窗体名称控件名属性另一个窗体名称控件名属性 例如,设置当前窗体(例如,设置当前窗体(Form1)中的文本框()中的文本框(Text1)的值,使它等于另一个窗体()的值,使它等于另一个窗体(Form2)中的两)中的两个文本框(个文本框(Text1和和Text2)的数值之和,实现的语句)的数值之和,实现的语句如下:如下:Text1.Text=Val(Form2.Text1.Text)+Val(Form2.Text
24、2.Text)(2)存取变量的值)存取变量的值 根据变量的定义位置和所使用的变根据变量的定义位置和所使用的变量定义语句的不同,量定义语句的不同,Visual Basic中的变中的变量可以分为量可以分为3类,即局部变量、模块变量类,即局部变量、模块变量及全局变量,其中模块变量包括窗体模及全局变量,其中模块变量包括窗体模块变量和标准模块变量。各种变量位于块变量和标准模块变量。各种变量位于不同的层次。不同的层次。在过程(事件过程或通用过程)内定义在过程(事件过程或通用过程)内定义的变量叫做局部变量,其作用域是它所在的的变量叫做局部变量,其作用域是它所在的过程。某一过程的执行只对该过程内的变量过程。某
25、一过程的执行只对该过程内的变量产生作用,对其他过程中相同名字的局部变产生作用,对其他过程中相同名字的局部变量没有任何影响。因此,可以在不同的过程量没有任何影响。因此,可以在不同的过程中定义相同名字的局部变量,它们之间没有中定义相同名字的局部变量,它们之间没有任何关系。对于局部变量,可以使用任何关系。对于局部变量,可以使用Dim或或Static语句声明,也可以在需要时直接给出语句声明,也可以在需要时直接给出变量名。变量的类型可以使用类型说明符标变量名。变量的类型可以使用类型说明符标识。如果没有类型说明符,识。如果没有类型说明符,Visual Basic把把该变量指定为变体数据类型。该变量指定为变
展开阅读全文