ncre vb电子光盘课件第13章_第1页
ncre vb电子光盘课件第13章_第2页
ncre vb电子光盘课件第13章_第3页
ncre vb电子光盘课件第13章_第4页
ncre vb电子光盘课件第13章_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第13章多窗体程序设计与环境应用

13.1建立多重窗体应用程序

应用程序可以有多个窗体,不同窗体提供不同的界面,共同完成整个程序的交互工作在多窗体界面程序中,每个窗体存放在一个窗体文件中,具有各自的控件和程序代码,完成各自的功能,各窗体之间还可以进行数据的互访多个窗体可以同时显示,但只有一个窗体是当前窗体,交互操作总是在当前窗体上进行的,用鼠标点击某个窗体,就可以把它变为当前窗体多窗体程序的每个窗体的设计方法都是一样的当创建一个新的工程时,只有一个自动产生的窗体,如果要设计多窗体程序,还需再添加新的窗体可以通过“工程”菜单中的“添加窗体”命令添加新的窗体与多重窗体程序设计有关的语句Load语句格式:Load窗体名称作用:把指定窗体装入内存,但不显示该窗体,不过,执行Load语句后,可以引用窗体中的控件及各种属性Unload语句格式:Unload窗体名称作用:清除内存中指定的窗体与多重窗体程序设计有关的方法Show方法格式:[窗体名称.]Show[模式]作用:显示指定窗体。若该窗体还未被装入内存,则先装入内存,再显示若省略“窗体名称”,则显示当前窗体参数“模式”有两种值,即0和1(不是False和True),省略则为01——窗体为“模态型”,只能在此窗体内进行交互操作,只有在关闭(隐藏或卸载)该窗口后才能对其他窗体进行交互操作0——窗体为“非模态型”,可以在不关闭本窗体的情况下对其他已显示的窗体进行操作把窗体的Visible属性设置为True可以起到与Show方法同样的效果Hide方法格式:[窗体名称.]Hide作用:隐藏指定窗体,但不从内存中清除把窗体的Visible属性设置为False可以起到与Hide方法同样的效果不同窗体间数据的访问

同一个应用程序中的不同窗体之间可以实现数据的互相访问除了使用全局变量外,在一个窗体中可以访问其他窗体上控件的属性和方法,不过,需要在控件名称前添加该控件所在窗体的名称访问另一窗体上控件的格式是:<另一个窗体名>.<控件名>[.<属性名|方法名>]如果省略属性名和方法名,访问的就是控件的默认属性下面语句可以把本窗体中Text1文本框中的内容复制到Form2窗体的Text1文本框中Form2.Text1.Text=Text1.Text【例】设计一个多窗体程序

问题描述在Form1窗体上画1个文本框Text1,用于输入姓名,画1个标签Label1,用于显示总分,再画一个“输入成绩”按钮;然后添加一个窗体Form2,上面有3个文本框Text1、Text2、Text3,和一个“返回”按钮,两个窗体的外观见下图要求:程序运行时,输入姓名后单击“输入成绩”按钮,则打开Form2窗体,在其中输入3个成绩后,单击“返回”按钮,则关闭Form2窗体,并把总分显示在Form1的Label1标签中Form1窗体Form2窗体【例】中的代码窗体Form1中的代码

PrivateSubCommand1_Click()Form2.Show '显示Form2窗体EndSub窗体Form2中的代码PrivateSubCommand1_Click()Form1.Label1.Caption=Val(Text1.Text)+Val(Text2.Text)+Val(Text3.Text)Hide '隐藏本窗体(Form2)EndSub说明程序刚运行时窗体Form2不显示执行语句Form2.Show后,显示Form2窗体,且Form2成为当前窗体为了在Form2中把总分放入Form1的Label1标签中,Label1的前面必须加窗体名“Form1”Hide是写在Form2窗体的代码中的,前面省略窗体名表示隐藏Form2窗体【例13.1】多窗体程序

问题描述设计一个程序,介绍“××电脑公司”出售的微型机。从清单上查到所需要的某种型号,然后显示该微机的配置和价格。要求介绍4种微机,即HX2000A、HX2000B、HX2000C和HX2000D建立界面用到以下多个窗体━━━━━━━━━━━━━━━━━━━━━━━━━━━━━窗体名称(Name)标题(Caption)─────────────────────────────封面窗体FormCover

"多重窗体程序演示"

列表窗体ListForm"微机型号列表"

配置窗体1HX2000A"HX2000A台式机"

配置窗体2HX2000B"HX2000B台式机"

配置窗体3HX2000C"HX2000C台式机"

配置窗体4HX2000D"HX2000D台式机"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━【例13.1】多窗体程序——封面窗体

封面窗体上有一个图片框和两个命令按钮控件名称(Name)标题(Caption)Picture属性─────────────────────────────图片框Picture1 装入自选的图片文件左命令按钮Command1"继续"右命令按钮Command2"结束"封面窗体的属性属性设置值说明─────────────────────────────

MaxButtonTrue可以放大窗体

MinButtonTrue可以缩小窗体

ControlBoxTrue有左上角控制框

BorderStyle2-Sizeble可以改变窗体大小

Caption"多重窗体程序演示"此标题显示在窗体顶部

NameFormCover窗体名称,在程序代码中使用

Icondisk06.ico当窗体最小化时显示的图标【例13.1】

——封面窗体(代码)封面窗体有两个命令按钮,为这两个命令按钮编写事件过程PrivateSubCommand1_Click()ListForm.ShowFormCover.HideEndSubPrivateSubCommand2_Click()EndEndSub说明单击“继续”按钮(Command1)则显示ListForm窗体,然后隐藏封面窗体(FormCover)【例13.1】

——列表窗体

作用作为对话框使用,列出各种微机的型号供用户选择窗体上的控件━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━控件属性设置值 作用─────────────────────────────────标签NameLabel1Caption"请选择所需要的微机"

列表框NameList1 列出所有微机型FontSize三号 号,供用户选择

FontName"宋体"

FontboldTrue

命令按钮NameCommand1 返回封面窗体Caption"返回"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━【例13.1】

——列表窗体(窗体属性)窗体部分属性设置作为对话框,一般不必提供改变大小、缩成图标及放大等功能━━━━━━━━━━━━━━━━━━━━━━━━━━━━━属性设置值说明─────────────────────────────

MaxButtonFalse右上角没有放大符号

MinButtonFalse右上角没有缩小符号

ControlBoxTrue保留左上角控制框

BorderStyle3-FixedDouble不能改变窗体大小

Caption"微机型号列表"此标题显示在窗体顶部

NameListForm窗体名称,在程序代码中使用

Icon默认━━━━━━━━━━━━━━━━━━━━━━━━━━━━━【例13.1】

——列表窗体(代码)SubList1_DblClick()ListForm.HideSelectCaseList1.ListIndexCase0HX2000A.ShowCase1HX2000B.ShowCase2HX2000C.ShowCase3HX2000D.ShowEndSelectEndSub说明Form_Load过程在加载时把所有微机信息添加到列表框中双击列表框中的某个项目(微机信息),即显示相应窗体并隐藏本窗体单击“返回”按钮(Command1)显示封面窗体并隐藏本窗体SubForm_Load()List1.AddItem"HX2000A微机"List1.AddItem"HX2000B微机"List1.AddItem"HX2000C微机"List1.AddItem"HX2000D微机"EndSubSubCommand1_Click()ListForm.HideFormCover.ShowEndSub【例13.1】——微机信息显示窗体

这样的窗体共有4个,以HX2000A微机窗体为例窗体及各控件的属性━━━━━━━━━━━━━━━━━━━━━━━━━━━━对象属性设置值────────────────────────────窗体Caption"HX2000A台式机"

NameHX2000A

标签NameLabel1BackStyle0-TransparentBoderStyle0–NoneAutosizeTrue

命令按钮NameCommand1Caption"返回"━━━━━━━━━━━━━━━━━━━━━━━━━━━━【例13.1】——所有窗体按照HX2000A微机窗体再创建HX2000B、HX2000C、HX2000B微机窗体完成后的“工程资源管理器”窗口如图所示【例13.1】——HX2000A窗体(代码)HX2000A微机窗体代码SubForm_Load()ShowClsLabel1.FontSize=24Label1.FontName="隶书"Label1.Caption="HX2000A微型机"Label1.FontBold=TrueFontSize=16Print:Print:PrintPrintTab(5);"处理器Intel奔腾41.5GHz"PrintTab(5);"内存128MPC133SDRAM"PrintTab(5);"硬盘40G高速"PrintTab(5);"显示器17'(43cm)纯平"PrintTab(5);"Modem

56kData/Faxmodem"PrintTab(5);"光驱50X超强纠错"FontUnderline=TruePrint:PrintTab(5);"价格6999元"EndSubSubCommand1_Click()UnloadHX2000AListForm.ShowEndSub说明Load事件在加载窗体之后,显示窗体之前被调用,过程中用Print语句输出的信息是无法显示的(窗体还未显示),因此在过程的开头用Show语句先显示窗体,然后Print语句的输出就可以显示在窗体上了【例13.1】——HX2000B窗体(代码)HX2000B微机窗体代码SubForm_Load()ShowClsLabel1.FontSize=24Label1.FontName="隶书"Label1.Caption="HX2000B微型机"Label1.FontBold=TrueFontSize=16Print:Print:PrintPrintTab(5);"处理器Intel奔腾41.5GHz"PrintTab(5);"内存128MPC133SDRAM"PrintTab(5);"硬盘40G高速"PrintTab(5);"显示器15'TFT液晶"PrintTab(5);"Modem

56kData/Faxmodem"PrintTab(5);"光驱50X超强纠错"FontUnderline=TruePrint:PrintTab(5);"价格8900元"EndSubSubCommand1_Click()UnloadHX2000BListForm.ShowEndSub【例13.1】——HX2000C窗体(代码)HX2000C微机窗体代码SubForm_Load()ShowClsLabel1.FontSize=24Label1.FontName="隶书"Label1.Caption="HX2000C微型机"Label1.FontBold=TrueFontSize=16Print:Print:PrintPrintTab(5);"处理器Intel奔腾41.7GHz"PrintTab(5);"内存256MRAMBUS(PC800)"PrintTab(5);"硬盘60G高速"PrintTab(5);"显示器15'TFT液晶"PrintTab(5);"Modem56kData/Faxmodem"PrintTab(5);"光驱12XDVD-ROM"FontUnderline=TruePrint:PrintTab(5);"价格11800元"EndSubSubCommand1_Click()UnloadHX2000CListForm.ShowEndSub【例13.1】——HX2000D窗体(代码)HX2000D微机窗体代码SubForm_Load()ShowClsLabel1.FontSize=24Label1.FontName="隶书"Label1.Caption="HX2000D微型机"Label1.FontBold=TrueFontSize=16Print:Print:PrintPrintTab(5);"处理器Intel奔腾42.0GHz"PrintTab(5);"内存256MRAMBUS(PC800)"PrintTab(5);"硬盘60G高速"PrintTab(5);"显示器15'TFT液晶液晶电视二合一"PrintTab(5);"Modem

56kData/Faxmodem支持宽带网络"PrintTab(5);"光驱12XDVD+8x4x32CDRW"FontUnderline=TruePrint:PrintTab(5);"价格18600元"EndSubSubCommand1_Click()UnloadHX2000DListForm.ShowEndSub13.2多重窗体程序的执行与保存

刚开始运行多窗体界面程序时,只显示一个窗体,其他窗体需要在这个窗体的某个事件过程中用特定的语句显示出来当应用程序包含多个窗体时,VisualBasic必须知道首先显示的是哪个窗体,这个窗体称为“启动窗体”通常,在设计时创建的第一个窗体自动被作为启动窗体如果希望后添加的某个窗体成为启动窗体,必须特别指定指定启动对象

在创建一个“标准EXE”工程时,会自动包含第1窗体,这个窗体自动成为默认的启动窗体,程序运行时从这个窗体开始可以指定其他窗体为启动窗体也可以指定程序从标准模块中的一个特定过程(过程名为Main)开始运行,这时,不打开任何窗体,除非调用了某个窗体的Show方法指定启动对象的操作过程用“工程”菜单中的“工程属性”命令打开“工程属性”对话框在“启动对象”下拉列表中列出了已经建立的所有窗体的名称,选中其中一个(或选SubMain),按“确定”按钮,见下图多窗体程序的存取

保存多窗体程序步骤在“工程资源管理器”中选择需要保存的窗体,例如“Form1”,然后在“文件”菜单中选“Form1.frm另存为”命令保存窗体文件用同样方法保存其他窗体文件和标准模块文件在“文件”菜单中选“工程另存为”命令,保存工程文件如果是第一次保存,也可以直接单击“保存工程”按钮,这时会依次弹出对话框,保存每一个窗体,最后保存工程装入多窗体程序装入多窗体程序的方法与装入单窗体程序一样,可以在VB集成环境中打开工程,也可在资源管理器中双击工程文件,但由于是多窗体程序,不能只在资源管理器中双击窗体文件,这样做不能装入其他窗体一个工程由一个或多个模块和其他辅助文件组成,一个模块中的程序代码由一个或多个过程组成工程、模块、过程构成了VisualBasic应用程序的基本层次结构在VisualBasic中主要有三种模块窗体模块:包含用

温馨提示

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

评论

0/150

提交评论