已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章表单集与多重表单,9.1表单集创建表单集表单集的应用,9.2多重表单表单的类型主从表单之间的参数传递隐藏VisualFoxPro主窗口,大多数的应用程序都有不同的用户界面,这样就有必要介绍多个表单的使用。如果在程序中同时出现的表单之间存在频繁的信息交流,可以使用“表单集”来组织表单。如果表单之间存在调用关系,可以利用“多重表单”。,9.1表单集,表单集有以下优点:可同时显示或隐藏表单集中的全部表单。可以可视的调整多个表单以控制它们的相对位置。因为表单集中所有表单都是在单个.scx文件中用单独的数据环境定义的,可自动地同步改变多个表单中的记录指针。如果在一个表单的父表中改变记录指针,另一个表单中子表的记录指针则被更新和显示。如果需要将多个表单处理为表单组,可创建表单集。运行表单集时,将加载表单集所有表单和表单的所有对象。加载带着很多控件的多个表单将会花费几秒钟的时间。,表单集是在“表单设计器”中创建的。无论是建立一个新表单还是打开已有的表单,进入“表单设计器”后,从主菜单中,选择“表单”菜单中的“创建表单集”,即可创建一个新的表单集FormSet1,如图所示。,9.1.1创建表单集,表单集是一个包含有一个或多个表单的父层次的容器,该容器不可见。创建表单集以后,该表单集包含原有的一个表单,可以向表单集中添加新的表单或删除表单。如下图所示。,若要向表单集中添加新的表单,可以从主菜单的“表单”栏中,选择“添加新表单”。若要从表单集中删除表单,可以:第1步:在“属性”窗口对象列表框中,选定要删除的表单。第2步:从主菜单的“表单”栏中选择“移除表单”。如果表单集中只有一个表单,则无法删除表单,只可删除表单集而只剩下单个的表单。若要删除表单集,可以从主菜单的“表单”栏中选择“移除表单集”。,例9-1使用表单集设计的电子标题板程序(如图)。,创建表单集:在主菜单中选择“表单”中的“创建表单集”,创建一个包含原有“控制”表单的表单集FormSet1。然后再在“表单”菜单中选择“添加新表单”,表单设计器中出现第二个表单(Form2)。在Form2中增加一个标签Label1和一个计时器Timer1。,9.1.2表单集的应用,为表单集创建自定义方法Yidong(),实现斜向移动,其代码为:,DOCASECASETHIS.Tag=“1”Label1.Left3,THIS.Form2.Label1.Top3)IFTHIS.Form2.Label1.Left=0THIS.Tag=“2”&如果图片到达窗体左边界,向上向右移动ELSEIFTHIS.Form2.Label1.Top0THISFORM.Label1.Top=THISFORM.Label1.Top5ELSETHISFORM.Label1.Top=THISFORM.HeightENDIFCASEn=3THISFORMSET.yidong()ENDCASE,“标题板”表单Form2中计时器Timer1的Timer事件代码:,9.2多重表单,表单集中表单的“地位”是平等的,没有主次关系,而多重表单是指具有主从关系的表单,由“主”表单(或称父表单)调用“子”表单,这里“主”、“子”表单处于不同的层次。,9.2.1表单的类型,VFP允许创建以下几种类型的表单(如图所示):,子表单。包含在另一个窗口中,用于创建MDI(多文档界面)应用程序的表单。浮动表单。属于父表单(主表单)的一部分,但并不包含在父表单中。也可用于创建MDI应用程序。顶层表单。没有父表单的独立表单,用于创建一个SDI(单文档界面)应用程序,或用作MDI应用程序中其他子表单的父表单。,1.有关的属性创建各种类型表单的方法大体相同,但需设置特定的属性以指出表单应该如何工作。除了在第1章中介绍的常用表单属性外,与多重表单有关的表单属性,见表9-1。,如果创建的是子表单,则不仅需要指定它应在另外一个表单中显示,而且还需指定是否是MDI(多文档界面)类的子表单,即指出表单最大化时是如何工作的。如果子表单是MDI类的,它会包含在父表单中,并共享父表单的标题栏、标题、菜单以及工具栏。非MDI类的子表单最大化时将占据父表单的全部用户区域,但仍保留它本身的标题和标题栏。,2.子表单建立一个子表单的步骤:用“表单设计器”创建或编辑表单。表单的ShowWindow属性可设为下列值之一:0在屏幕中(默认)。子表单的父表单即为VisualFoxPro主窗口。1在顶层表单中。当子窗口显示时,子表单的父表单是活动的顶层表单。如果希望子窗口出现在顶层表单窗口内,而不是出现在VisualFoxPro主窗口内时,可选用该项设置。如果希望子表单最大化时与父表单组合成一体,可设置表单的MDIForm属性为“真”(.T.);如果希望子表单最大化时仍保留为一独立的窗口,可设置表单的MDIForm属性为“假”(.F.)。,3.浮动表单建立浮动表单的步骤:用“表单设计器”创建或编辑表单。可将表单的ShowWindow属性设置为以下值之一:0在屏幕中(默认)。浮动表单的父表单将出现在VisualFoxPro主窗口。1在顶层表单中。当浮动窗口显示时,浮动表单的父表单将是活动的顶层表单。将表单的Desktop属性设置为“真”(.T.)。,4.顶层表单建立顶层表单的步骤:用“表单设计器”创建或编辑表单。将表单的ShowWindow属性设置为“2作为顶层表单”。,5.子表单的显示若要在某表单中显示该子表单,只需在顶层表单的事件代码中包含DOFORM命令,指定要显示的子表单的名称。e.g.DOFORMMyChild,6.子表单的多个实例在同一时刻,可以有一个类定义的多个实例活动。管理一个表单的多个实例时,须记住以下要点:在启动表单中创建一个数组属性,数组中的每个元素用来存放一个表单的实例变量,如果事先不知道有多少个实例,跟踪实例变量的最简便的方法就是使用数组。对于拥有多个实例的表单,将其DataSession属性设置为2私有数据工作期。私有数据工作期为表单的每个实例提供一个独立的工作区,因此选定的表和记录指针的位置都是独立的。,主表单在调用子表单时,使用DO命令的下列格式,可以实现主从表单之间的参数传递。,9.2.2主从表单之间的参数传递,1.接受从子表单返回的值DOFORM子表单名TO内存变量说明:从子表单返回的值存放于内存变量中,在主表单中可以被使用。,2.主表单向子表单传递数据DOFORM表单文件名WITH实参表列说明:在子表单的Init事件代码中应该有如下代码来接受数据:PARAMETERS形参表列实参表列与形参表列中的参数应用逗号分隔,形参表列中的参数数目不能少于实参表列中的参数数目。多余的参数变量将初始化为.F.假。,3.主表单与子表单相互传递数据DOFORM表单文件名WITH实参表列TO内存变量,【例9-2】从主表单中将输入框的“标题”、“信息”和“默认值”传给子表单(如图9-6),然后将子表单输入框中的输入值返回主表单(如图9-7)。,设置对象属性。首先在子表单中增加一个自定义属性creturn,用来存放返回值。然后设置其他对象的属性,见下表。,(1)首先设计子表单(InputBox.scx),PARAMETERScPrompt,ctitle,cDefaultSETEXACTONIFTYPE(cDefault)=LcDefault=ENDIFIFTYPE(ctitle)=Lctitle=输入框ENDIF,子表单form1的事件代码:Init事件:,IFTYPE(cPrompt)=LcPrompt=请输入:ENDIFTHIS.Caption=ctitleTHIS.Label1.Caption=cPromptTHIS.Text1.Value=cDefaultSETEXACTOFF,RETURNTHISFORM.creturn,UnLoad事件:,THISFORM.creturn=THISFORM.Text1.ValueTHISFORM.Release,(2)然后设计主表单,“确定”按钮Command1的Click事件代码:,THISFORM.Release,“取消”按钮Command2的Click事件代码:,cParam1=THISFORM.Container1.Text1.ValuecParam3=THISFORM.Container2.Text1.ValuecParam2=THISFORM.Container3.Text1.ValueDOFORMLOCFILE(inputbox.scx)WITH;cParam1,cParam2,cParam3TOnRetValueTHISFORM.Container4.Text1.Value=nRetValue,THISFORM.Release,“关闭”按钮Command2的Click事件代码:,“输入框”按钮Command1的Click事件代码:,说明:函数LOCFILE(文件名,扩展名,显示信息)在指定目录中查找文件名,扩展名指定的文件,若找到则返回文件名及其路径,否则打开对话框提供文件目录供检索。,1.利用Visible属性在表单的Init事件中,包含下列代码行:Application.Visible=.F.在表单的Destroy事件中,包含下列代码行:Application.Visible=.T.,9.2.3隐藏VisualFoxPro主窗口,在运行顶层表单时,若不希望显示VFP的主窗口,有两种方法可隐藏VFP的主窗口。,2.使用配置文件在配置文件中包含以下行:SCREEN=OFF,小结第9章表单集与多重表单,9.1表单集9.2多重表单创建表单集表单的类型表单集的应用主从表单之间的参数传递隐藏VisualFoxPro主窗口,习题9,1.在表单集的不同表单中进行控制和属性的设置(如图9-10所示)。2.使用表单集设计口令验证表单与系统表单。如果是合法用户则进入系统表单,否则将关闭表单集。3.使用主、子表单形式设计口令验证系统。4.在例8-6中使用输入框子表单输入数据。,1.在表单集的不同表单中进行控制和属性的设置(如图9-10所示)。,表单集formser1的activete事件:this.form2.text1.setfocus右表单中:Command1的click事件:ifthis.caption=文本字体改为粗体thisformset.form2.text1.fontbold=.T.this.caption=由粗体风格还原elsethis.caption=文本字体改为斜体thisformset.form2.tex1t.fontbold=.F.endif,Command2的click事件:ifthis.caption=文本字体改为斜体thisformset.form2.text1.fontitalic=.T.this.caption=由斜体风格还原elsethis.caption=文本字体改为斜体thisformset.form2.tex1t.fontbold=.F.EndifCommand3的click事件:thisformset.form1.caption=thisformset.form2.text1.value,Command4的click事件:thisformset.form2.caption=thisformset.form2.text1.valueCommand5的click事件:ifthis.caption=隐藏右表单thisformset.form2.visible=.F.this.caption=显示右表单elsethis.caption=隐藏右表单thisformset.form2.visible=.T.endifCommand6的click事件:releasethisformset,右表单中:Ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目的工程验收与质量管理
- 物流企业绿色认证方案
- 施工现场环境保护措施
- 流浪乞讨人员救助管理升级方案
- 施工材料采购及配送方案
- 内科学的考试题目及答案
- 零碳园区智能电池储能系统方案
- 乐理三级视唱考试题及答案
- GB 50957-2013 生物液体燃料工厂设计规范
- 建筑结构设计优化方案
- 新版gmp指南培训课件
- 项目评估服务方案
- 缺血性脑血管护理查房讲课件
- 期末常考易错培优卷-六年级下学期英语陕旅版(三起)(含答案解析)
- 校园维修人员管理制度
- 炸鸡店的竞争优势
- 房地产返现协议书
- GB/T 15237-2025术语工作及术语科学词汇
- 2025年中考语文作文提分秘籍9:中考记叙文12个高分结构模板抢分攻略
- 医院污水处理站服务外包项目投标方案(技术方案)
- 2025年城市轨道交通服务员技能竞赛考试题库500题(含答案)
评论
0/150
提交评论