版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章-表单设计概要第一页,共74页。常用控件列表框和组合框控件微调控件表格和页框控件命令按钮组控件第二页,共74页。7.1.5列表框和组合框列表框与组合框都有一个供用户选项的列表,但两者之间有两个区别:列表框任何时候都显示它的列表,而组合框平时只显示一个项,待用户单击它的向下按钮后才能显示可滚动的下拉列表。若要节省空间,并且突出当前选定的项时可使用组合框。组合框又分下拉组合框与下拉列表框两类,前者允许键入数据项;而列表框与下拉列表框都仅有选项功能。第三页,共74页。列表框控件生成器列表框生成器含有列表项、布局、样式、值等4个选项卡,用于为列表框设置各种属性。列表项选项卡样式选项卡布局选项卡值选项卡第四页,共74页。列表框控件列表项选项卡该选项卡用于指定要填充到列表框中的项。填充项可以是3种类型数据之一:表或视图中的字段、手工输入的数据或数组中的值。表或视图中的字段
手工输入数据数组中的值
第五页,共74页。列表框控件样式选项卡该选项卡用于指定列表框的样式,所显示的行数,要否递增搜索。“要显示的行数”微调控件用来调整列表框的显示行数,但是仅在文本选取7号字时所设置的行数与实际项数相符。原因是该微调控件的设置实际上改变了列表框的Height属性,而VisualFoxPro则按象素来指定高度。第六页,共74页。列表框控件布局选项卡布局选项卡含有1个复选框和1个表格,用于控制列表框的列宽和显示。1)“调整列表框的宽度来显示所有列”复选框:该选项自动设置了Width属性,能根据列表项选项卡中微调控件指定的列数自动调整列表框的宽度。2)表格:表格中显示了在列表项选项卡中定义的列,并可用鼠标拖动列标头右边的列间隔线来调整列宽,相当于修改了Co1umnWidths属性。双击列标头还可隐藏该列,使得表单执行时该列不显示,但其数据仍起作用。第七页,共74页。列表框控件值选项卡值选项卡包含两个组合框,分别用来指定返回值的列以及存储返回值的字段。1)“从哪一列中返回值”组合框:该组合框的操作对应于BoundColumn属性。组合框列表中包含字段名或表示列号的选项,供用户决定列表框返回值的字段或列。2)字段名组合框:该组合框的操作对应于ControlSource属性,用来指定存储返回值的字段。
第八页,共74页。列表框控件控件值源的类型列表框和组合框的列表中可以填充各类数据,在上述的列表框生成器中,已涉及值,数组和字段3种类型,实际上共有9类.它们均由RowSourceType属性来指定,RowSourceType属性的可取值如表7-5所示:
第九页,共74页。列表框控件第十页,共74页。列表框控件列表框的常用属性MoverBars:设置列表框的左侧是否显示移动按钮。MultiSelect:设置用户是否可以同时在列表中选择多项。Value:返回列表框中选定的项,如果有多列,返回由BoundColumn属性指定的列的内容。DisplayValue:返回列表框中选定的项第一列的内容。第十一页,共74页。列表框控件举例[例7-5]设计一个如图所示的查询表单,其功能是:用户可在文本框中输入性别,然后查询出RSB表中相应性别的所有人的名字,并在列表框中显示出来。
第十二页,共74页。列表框控件举例操作步骤如下:在VisualFoxPro中新建一个表单窗口;按上图所示,在该表单窗口中分别创建一个标签对象、一个文本框对象、一个列表框对象,调整它们的大小并摆放到相应的位置;设置各控件的属性如表7-6所示第十三页,共74页。列表框控件举例第十四页,共74页。列表框控件举例在Text1的Valid事件中输入下列代码:Thisform.List1.RowSource=;"SELECT姓名FROMrsb;WHERE性别=ALLT(This.Value);INTOCURSpp"第十五页,共74页。组合框控件组合框是列表框和文本框的组合。组合框有两种类型:下拉式组合框,Style属性的值是0时下拉式列表框,Style属性的值是2时组合框控件也有生成器,用法与列表框完全相同除了生成器提到的属性外,组合框的常用属性还有:第十六页,共74页。组合框的常用属性Value属性功能:返回组合框中选定的项,如果有多列,返回由BoundColumn属性指定的列的内容。DisplayValue属性功能:返回组合框中选定的项第一列的内容。也可返回用户输入的内容。第十七页,共74页。组合框的常用属性ListCount属性功能:返回组合框或列表框中列表项的个数。说明:该属性在设计时不可用,运行时为只读属性。即仅可取用属性值,不可进行设置。
第十八页,共74页。组合框的常用属性ListIndex属性格式:Control.ListIndex[=nIndex]
功能:返回或设置组合框(列表框)列表显示时选定项的顺序号。说明:(1)本属性用顺序号来表示某项已被选定。nIndex则代表要设置的顺序号,可取1到ListCount之间的整数之一。nIndex的缺省值是0,表示没有选定列表项。对于下拉组合框,当列表中没有与键入值相同的项时就返回0。(2)本属性设计时不可用,运行时可读写。
第十九页,共74页。组合框的常用属性List属性格式:Control.List(nRow[,nCol])功能:返回组合框或列表框第nRow行,nCol列的内容。第二十页,共74页。组合框的常用属性Selected属性格式:control.Selected(nIndex)[=IExpr]功能:用于分辨组合框或列表框中某一列表项是否被选中。当选中时Selected属性返回.T.,否则返回.F.。说明:(1)nIndex表示列表项的显示顺序号;(2)IExpr可取.T.或.F.之一,用来设置属性值;(3)本属性设计时不可用,运行时可读写。
第二十一页,共74页。组合框控件举例[例7-6]设计一个如图所示的查询表单,要求当表单执行时,用户在组合框中选择了哪一条记录,哪一条记录的内容就在下面显示出来。第二十二页,共74页。组合框控件举例操作步骤如下:在VisualFoxPro中新建一个表单窗口;按上图所示,在该表单窗口中分别创建一个标签对象、一个组合框对象。调整它们的大小并摆放到表单上方相应的位置;设置各控件的属性如表7-7所示。
第二十三页,共74页。组合框控件举例第二十四页,共74页。组合框控件举例添加数据环境RSB,将RSB的相应字段拖拽到表单,并调整对象的位置如图7-12所示。为组合框Combo1的Click事件中输入下列代码:LOCATFOR编号=ALLTRIM(This.Value)Thisform.Refresh为组合框Combo1的Init事件中输入下列代码:This.ListIndex=1
第二十五页,共74页。7.1.6微调控件微调控件的常用属性有:Increment:用户点按向上或向下按钮时每次增大或减小的值。KeyboardHighValue:能输入到微调控件文本框中的最大值。KeyboardLowValue:能输入到微调控件文本框中的最小值。SpinnerHighValue:用户按向上按钮时能达到的最大值。SpinnerLowValue:用户按向下按钮时能达到的最小值。Value:返回用户设置的值。第二十六页,共74页。微调控件举例[例7-7]设计一个如图所示的表单,要求当表单执行时,用户在微调控件中设置好年月日,当用户单击确定时,用户设定的日期将在文本框中显示出来。
第二十七页,共74页。微调控件举例操作步骤如下:在VisualFoxPro中新建一个表单窗口;按上图所示,在该表单窗口中分别创建一个文本框对象、一个命令按钮对象、三个微调对象、三个标签对象。调整它们的大小并摆放到相应的位置;设置各控件的属性如表7-8所示第二十八页,共74页。微调控件举例第二十九页,共74页。微调控件举例第三十页,共74页。微调控件举例为命令按钮Command1的Click事件中输入下列代码:x=STR(This.Parent.Spinner1.Value,4)y=STR(This.Parent.Spinner2.Value,2)z=STR(This.Parent.Spinner3.Value,2)t="{^"+x+"/"+y+"/"+z+"}"Thisform.Text1.Value=&t第三十一页,共74页。7.1.7-1表格控件VisualFoxPro提供了一个强大的工具来显示和操作多行数据,这就是表格。表格是一个容器对象,像表单集能包含多个表单一样,它可以包含多个列。另外,列可以包含表头和控件,并且每一部分都有自己的属性、事件和方法。
第三十二页,共74页。表格控件表格的组成表格(Grid):由一或若干列组成.列(Column):一列可显示表的一个字段,列由列标题和列控件组成。列标题(例如:Headerl):默认显示字段名,允许修改。列控件(例如:Textl);一列必须设置一个列控件,该列中的每个单元格都可用此控件来显示字段值。列控件默认为文本框第三十三页,共74页。表格控件在表单窗口添加表格控件从数据环境创建
利用表格生成器创建
表格项选项卡
样式选项卡
布局选项卡
关系选项卡
交互式创建第三十四页,共74页。表格编辑修改列标题前已提到,在表格生成器的标题文本框中可以修改列标题。此外还有下面两种方法。用代码修改:例如Thisform.Gridl.Column2.Headerl.Caption=”名称”,可将表格中第2列的标题修改为:名称。在属性窗口对象列表中按照从容器到对象的次序,找到Headerl对象后,选择该对象作为当前对象,然后修改其Caption属性。
第三十五页,共74页。表格编辑调整表格的行高与列宽
调整列宽:表格激活后,将鼠标指针置于表格两列标题之间,这时指针变为带有左右双向箭头的竖条,便可左右拖动列线来改变列宽.另一种方法是设置列的Width属性,例如令Thisform.Gridl.Columnl.Width=50调整行高:标题栏行和内容行的调整方法略有不同。表格激活后,若调整标题栏高度,可将鼠标指针置于表格标题栏行首按钮的下框线处,当指针变成带有上下双向箭头的横条后,即可上下拖动行线来改变高度。调整内容行高度时,应将鼠标指针置于表格内容第1行行首按钮的下框线处,然后上下拖动行线来改变行高。此时,所有内容行的高度将统一变化。
第三十六页,共74页。表格编辑若要禁止用户在运行时擅自改变表格标题栏的高度,可将表格的AllowHeaderSizing属性设置为.F.;若表格的AllowRowSizing属性为.F.,则禁止改变表格内容行的高度。第三十七页,共74页。表格编辑列的增删a.在表格的ColumnCount属性中设置表格的列数,从而改变表格的列数。b.打开表格生成器,在表格项选项卡中可增加或减少字段。c.要删除列,可在属性窗口中选定某列后按Del健。第三十八页,共74页。表格的常用属性表格属性ChildOrder:与父表的主关键字相连接的子表的外部关键字。ColumnCount:列数。如果ColumnCount设置为-1,表格的列数与RecordSource中的字段数相同。LinkMaster:在表格中显示的子记录的父表。RecordSource:显示在表格中的数据源。RecordSourceType:显示在表格中的数据类型。AllowAddNew:该属性为.T.时允许用户向表格中的表添加记录。该属性为.F.(默认值)时,只能用APPENDBLANK或INSERT命令来添加记录。第三十九页,共74页。表格的常用属性列属性ControlSource:指定某表的某字段作为本列的数据源。CurrentControl:为列指定控件。Spares:取值为.T.(默认值)时,在列表中只有选中的单元格以CurrentControl指定的控件显示,其它单元格仍以文本框显示。取值为.F.时,该列的所有单元格均以CurrentControl指定的控件显示。
第四十页,共74页。用表格控件建立一对多表单在数据环境中建立一对多表单的步骤如下:从数据环境设计器的父表中把期望的字段拖动到表单里。从数据环境设计器中把相关的子表拖动到表单里。第四十一页,共74页。表格控件举例[例7-8]设计一个如图所示的用表格显示RSB所有记录的表单。第四十二页,共74页。表格控件举例操作步骤如下:在VisualFoxPro中新建一个表单窗口;向表单的数据环境添加表RSB;将人事表的标题拖拽到表单;保存当前设计结果,并运行该表单,查看是否获得预期的结果。第四十三页,共74页。表格控件举例[例7-9]设计一个如图所示的查询表单,要求当用户单击查询时,将在表格中显示出RSB的编号,姓名,职称和GZB的实发工资字段的值。第四十四页,共74页。表格控件举例操作步骤如下:在VisualFoxPro中新建一个表单窗口;按上图所示,在该表单窗口中分别创建一个表格对象、两个命令按钮对象。调整它们的大小并摆放到相应的位置;设置各控件的属性如表7-9所示:
第四十五页,共74页。表格控件举例第四十六页,共74页。表格控件举例为命令按钮Command1的Click事件中输入下列代码:Thisform.Grid1.RecordSource=;"SELECTrsb.编号,姓名,职称,实发工资;FROMrsb,gzbWHERErsb.编号=gzb.编号;INTOCURSpp"为命令按钮Command2的Click事件中输入下列代码:CLOSEALLThisform.Release第四十七页,共74页。表格控件举例[例7-10]设计一个按部门浏览人事表记录的表单,如图所示。第四十八页,共74页。表格控件举例设计步骤如下:建立一个新表单,为该表单添加数据环境,在数据环境中添加表BMDM和表RSB,将表BMDM的“部门名称”字段从数据环境中拖到表单中,在表单中将出现一个文本框控件,该控件的ControlSource属性将自动设置为:BMDM.部门名称。在RSB的标题处按下鼠标拖到表单中,将出现一个表格控件,该控件的RecordSourceType属性自动被设置为:1-别名,RecordSource属性自动被设置为:RSB。
第四十九页,共74页。表格控件举例向表单添加两个命令按钮控件,设置各控件的属性如表7-10所示:第五十页,共74页。表格控件举例在Command1的Click事件中输入下列代码:SKIP-1IFBOF() =MESSAGEBOX("已到第一条记录!",48,;"信息")This.Enabled=.F. ELSE Thisform.Refresh This.Parent.Command2.Enabled=.T.ENDIF第五十一页,共74页。表格控件举例在Command2的Click事件中输入下列代码:SKIPIFEOF() =MESSAGEBOX("已到最后一条记录!",48,"信息") This.Enabled=.F. SKIP-1ELSE Thisform.Refresh This.Parent.Command1.Enabled=.T.ENDIF第五十二页,共74页。7.1.7-2页框控件页框是一个包含页面的容器对象,用户可在页框中定义多个页面,以生成带选项卡的对话框。在表单中添加页框控件的步骤为:在表单控件工具栏中单页框控件按钮;移动鼠标指针到表单中,单击并拖拽到合适的大小;第五十三页,共74页。页框控件页框的常用属性有:PageCount:设置页框中页面的个数。页面的常用属性有:Caption:设置页面的名称。第五十四页,共74页。页框控件在页框中选择不同页面的步骤如下:在页框中单击鼠标右键,选择编辑,则页框呈现出选中状态,边框变粗;单击要选择的页面标签。第五十五页,共74页。页框控件在页面中加入控件的步骤如下:选中要加入控件的页面;在表单控制工具栏中单击所需控件,移动鼠标到所选页面中,单击并拖拽到合适大小。第五十六页,共74页。页框控件举例[例7-11]设计一个如图所示的查询表单,要求对RSB表可按姓名查询,也可按编号查询。并显示查找到的记录的编号、姓名、性别、职称、基本工资、简历、相片字段的值,如果找不到满足条件的记录,则弹出一个信息窗,显示“没找到满足条件的记录,请重新输入!”第五十七页,共74页。页框控件举例操作步骤如下:新建一个表单,添加一个页框控件。在页框的第一个页面中添加一个标签控件、一个文本框控件、一个命令按钮,操作方法为:在页框中单击鼠标右键,选择编辑,选中第一个页面,在表单控件工具栏中单击标签控件,移动鼠标到第一个页面中,单击鼠标。第五十八页,共74页。页框控件举例将RSB.DBF添加到表单的数据环境中,分别将编号、姓名、性别、职称、基本工资、简历、相片字段拖入页框的第一个页面;按图7-18所示位置摆放。设置各控件的属性如表7-11所示
第五十九页,共74页。页框控件举例第六十页,共74页。页框控件举例第六十一页,共74页。页框控件举例选择页框第一个页面的所有对象,选择【编辑】→【复制】,在属性窗口的对象列表中选择Page2对象,再选择【编辑】→【粘帖】,这一步操作将所有的对象复制到页框的第二个页面中;并修改标签控件的Caption的属性为:请输入编号:第六十二页,共74页。页框控件举例在PageFrame1.Page1.Command1的Click事件中输入下列代码:LOCATFORALLTRIM(姓名)==;ALLTRIM(This.Parent.Text1.Value)IFNOTFOUND() =MessageBox("没找到满足条件的记录,;请重新输入!",48,"信息")ENDIFThisform.RefreshThis.Parent.Text1.setfocus第六十三页,共74页。页框控件举例在PageFrame1.Page2.Command1的Click事件中输入下列代码:LOCATFORALLTRIM(编号)==;ALLTRIM(This.Parent.Text1.Value)IFNOTFOUND() =MessageBox("没找到满足条件的记录,;请重新输入!",48,"信息")ENDIFThisform.RefreshThis.Parent.Text1.setfocus第六十四页,共74页。页框控件举例在PageFrame1的Init事件中输入下列代码:GOBOTTOMSKIP
在PageFrame1.Page1的Activate事件中输入下列代码:This.Text1.setfocus
在PageFrame1.Page2的Activate事件中输入下列代码:This.Text1.setfocus
第六十五页,共74页。7.1.8命令按钮组控件命令按钮组控件是一个容器控件,它可包含若干个命令按钮,并能统一管理这些命令按钮,命令按钮组与组内的各命令按钮都有自己的属性,事件和方法程序,因而既可单独操作各命令按钮,也可对组控件进行操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北唐山滦南县卫生健康局乡村一体化村卫生室公开选聘乡村医生560名考试参考试题及答案解析
- 2025安徽星瑞齿轮传动有限公司社会招聘2人笔试重点试题及答案解析
- 2025云南玉溪城投实业有限公司工作人员公开招聘1人笔试参考题库附带答案详解(3卷)
- 松原市2023年吉林松原扶余市事业单位招聘工作人员(含专项)2号(22人)笔试历年参考题库典型考点附带答案详解(3卷合一)
- 四川九洲电器集团有限责任公司招聘企业管理备考题库及答案1套
- 凌云县振凌投资集团有限责任公司公开招聘职业经理人考试题库必考题
- 温州东瓯中学招聘工作人员考试题库及答案1套
- 招聘(综合行政执法队)备考题库附答案
- 合肥市北城力高学校招聘小学数学临聘教师备考题库附答案
- 2026年福建莆田市仙游县粮食购销有限责任公司编外人员招聘1人参考题库附答案
- 核磁共振科管理制度
- 质控医师年度总结(3篇)
- 餐饮火锅店管理手册样本
- 军事理论-综合版智慧树知到期末考试答案章节答案2024年国防大学
- 办公室装修预算清单
- 《电力大件运输规范》
- 国开电大操作系统实验2:进程管理实验报告
- 机械加工工序卡
- 人教部编版五年级语文上册期末试卷(完整)
- 节能基本情况表(打印)
- 电动车转让合同协议书电子版
评论
0/150
提交评论