第7章-表单设计概要.ppt_第1页
第7章-表单设计概要.ppt_第2页
第7章-表单设计概要.ppt_第3页
第7章-表单设计概要.ppt_第4页
第7章-表单设计概要.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/8/4,1,第7章 表单设计,之二,2020/8/4,2,常用控件,列表框和组合框控件 微调控件 表格和页框控件 命令按钮组控件,2020/8/4,3,7.1.5 列表框和组合框,列表框与组合框都有一个供用户选项的列表,但两者之间有两个区别: 列表框任何时候都显示它的列表,而组合框平时只显示一个项,待用户单击它的向下按钮后才能显示可滚动的下拉列表。若要节省空间,并且突出当前选定的项时可使用组合框。 组合框又分下拉组合框与下拉列表框两类,前者允许键入数据项;而列表框与下拉列表框都仅有选项功能。,2020/8/4,4,列表框控件,生成器 列表框生成器含有列表项、布局、样式、值等4个选项卡

2、,用于为列表框设置各种属性。 列表项选项卡 样式选项卡 布局选项卡 值选项卡,2020/8/4,5,列表框控件,列表项选项卡 该选项卡用于指定要填充到列表框中的项。 填充项可以是3种类型数据之一:表或视图中的字段、手工输入的数据或数组中的值。 表或视图中的字段 手工输入数据 数组中的值,2020/8/4,6,列表框控件,样式选项卡 该选项卡用于指定列表框的样式,所显示的行数,要否递增搜索。 “要显示的行数”微调控件用来调整列表框的显示行数,但是仅在文本选取7号字时所设置的行数与实际项数相符。原因是该微调控件的设置实际上改变了列表框的Height属性,而Visual FoxPro则按象素来指定高

3、度。,2020/8/4,7,列表框控件,布局选项卡 布局选项卡含有1个复选框和1个表格,用于控制列表框的列宽和显示。 1)“调整列表框的宽度来显示所有列”复选框:该选项自动设置了Width属性,能根据列表项选项卡中微调控件指定的列数自动调整列表框的宽度。 2)表格:表格中显示了在列表项选项卡中定义的列,并可用鼠标拖动列标头右边的列间隔线来调整列宽,相当于修改了Co1umnWidths属性。双击列标头还可隐藏该列,使得表单执行时该列不显示,但其数据仍起作用。,2020/8/4,8,列表框控件,值选项卡 值选项卡包含两个组合框,分别用来指定返回值的列以及存储返回值的字段。 1)“从哪一列中返回值”

4、组合框:该组合框的操作对应于BoundColumn属性。组合框列表中包含字段名或表示列号的选项,供用户决定列表框返回值的字段或列。 2)字段名组合框:该组合框的操作对应于ControlSource属性,用来指定存储返回值的字段。,2020/8/4,9,列表框控件,控件值源的类型 列表框和组合框的列表中可以填充各类数据,在上述的列表框生成器中,已涉及值,数组和字段3种类型,实际上共有9类它们均由RowSourceType属性来指定,RowSourceType 属性的可取值如表7-5所示:,2020/8/4,10,列表框控件,2020/8/4,11,列表框控件,列表框的常用属性 MoverBars

5、:设置列表框的左侧是否显示移动按钮。 MultiSelect:设置用户是否可以同时在列表中选择多项。 Value:返回列表框中选定的项,如果有多列,返回由BoundColumn属性指定的列的内容。 DisplayValue:返回列表框中选定的项第一列的内容。,2020/8/4,12,列表框控件举例,例7-5 设计一个如图 所示的查询表单,其功能是:用户可在文本框中输入性别,然后查询出RSB表中相应性别的所有人的名字,并在列表框中显示出来。,2020/8/4,13,列表框控件举例,操作步骤如下: 在Visual FoxPro中新建一个表单窗口; 按上图所示,在该表单窗口中分别创建一个标签对象、一

6、个文本框对象、一个列表框对象,调整它们的大小并摆放到相应的位置; 设置各控件的属性如表7-6所示,2020/8/4,14,列表框控件举例,2020/8/4,15,列表框控件举例,在 Text1 的 Valid 事件中输入下列代码: Thisform.List1.RowSource= ; SELECT 姓名 FROM rsb ; WHERE 性别 =ALLT(This.Value) ; INTO CURS pp,2020/8/4,16,组合框控件,组合框是列表框和文本框的组合。组合框有两种类型: 下拉式组合框, Style属性的值是0时 下拉式列表框,Style属性的值是2时 组合框控件也有生成

7、器,用法与列表框完全相同 除了生成器提到的属性外,组合框的常用属性还有:,2020/8/4,17,组合框的常用属性,Value属性 功能:返回组合框中选定的项,如果有多列,返回由BoundColumn属性指定的列的内容。 DisplayValue属性 功能:返回组合框中选定的项第一列的内容。也可返回用户输入的内容。,2020/8/4,18,组合框的常用属性,ListCount属性 功能:返回组合框或列表框中列表项的个数。 说明:该属性在设计时不可用,运行时为只读属性。即仅可取用属性值,不可进行设置。,2020/8/4,19,组合框的常用属性,ListIndex属性 格式:Control.Lis

8、tIndex=nIndex 功能:返回或设置组合框(列表框)列表显示时选定项的顺序号。 说明: (1)本属性用顺序号来表示某项已被选定。nIndex则代表要设置的顺序号,可取1到ListCount之间的整数之一。 nIndex的缺省值是0,表示没有选定列表项。对于下拉组合框,当列表中没有与键入值相同的项时就返回0。 (2)本属性设计时不可用,运行时可读写。,2020/8/4,20,组合框的常用属性,List属性 格式:Control.List(nRow,nCol ) 功能:返回组合框或列表框第nRow行,nCol列的内容。,2020/8/4,21,组合框的常用属性,Selected属性 格式:

9、 control.Selected(nIndex)=IExpr 功能:用于分辨组合框或列表框中某一列表项是否被选中。当选中时Selected属性返回.T.,否则返回.F.。 说明: (1)nIndex表示列表项的显示顺序号; (2)IExpr可取.T.或.F.之一,用来设置属性值; (3)本属性设计时不可用,运行时可读写。,2020/8/4,22,组合框控件举例,例7-6设计一个如图所示的查询表单,要求当表单执行时,用户在组合框中选择了哪一条记录,哪一条记录的内容就在下面显示出来。,2020/8/4,23,组合框控件举例,操作步骤如下: 在Visual FoxPro中新建一个表单窗口; 按上图

10、所示,在该表单窗口中分别创建一个标签对象、一个组合框对象。调整它们的大小并摆放到表单上方相应的位置; 设置各控件的属性如表7-7所示。,2020/8/4,24,组合框控件举例,2020/8/4,25,组合框控件举例,添加数据环境RSB,将RSB的相应字段拖拽到表单,并调整对象的位置如图7-12所示。 为组合框Combo1的Click事件中输入下列代码: LOCAT FOR 编号=ALLTRIM(This.Value) Thisform.Refresh 为组合框Combo1的Init事件中输入下列代码: This.ListIndex=1,2020/8/4,26,7.1.6 微调控件,微调控件的常

11、用属性有: Increment:用户点按向上或向下按钮时每次增大或减小的值。 KeyboardHighValue:能输入到微调控件文本框中的最大值。 KeyboardLowValue:能输入到微调控件文本框中的最小值。 SpinnerHighValue:用户按向上按钮时能达到的最大值。 SpinnerLowValue:用户按向下按钮时能达到的最小值。 Value:返回用户设置的值。,2020/8/4,27,微调控件举例,例7-7设计一个如图所示的表单,要求当表单执行时,用户在微调控件中设置好年月日,当用户单击确定时,用户设定的日期将在文本框中显示出来。,2020/8/4,28,微调控件举例,操

12、作步骤如下: 在Visual FoxPro中新建一个表单窗口; 按上图所示,在该表单窗口中分别创建一个文本框对象、一个命令按钮对象、三个微调对象、三个标签对象。调整它们的大小并摆放到相应的位置; 设置各控件的属性如表7-8所示,2020/8/4,29,微调控件举例,2020/8/4,30,微调控件举例,2020/8/4,31,微调控件举例,为 命令按钮Command1的 Click 事件中输入下列代码: x=STR(This.Parent.Spinner1.Value,4) y=STR(This.Parent.Spinner2.Value,2) z=STR(This.Parent.Spinne

13、r3.Value,2) t=+x+/+y+/+z+ Thisform.Text1.Value= SELECT rsb.编号,姓名,职称,实发工资 ; FROM rsb,gzb WHERE rsb.编号=gzb.编号; INTO CURS pp 为命令按钮 Command2 的 Click 事件中输入下列代码: CLOSE ALL Thisform.Release,2020/8/4,48,表格控件举例,例7-10 设计一个按部门浏览人事表记录的表单,如图所示。,2020/8/4,49,表格控件举例,设计步骤如下: 建立一个新表单,为该表单添加数据环境,在数据环境中添加表BMDM和表RSB,将表B

14、MDM的“部门名称”字段从数据环境中拖到表单中,在表单中将出现一个文本框控件,该控件的ControlSource属性将自动设置为:BMDM.部门名称。在RSB的标题处按下鼠标拖到表单中,将出现一个表格控件,该控件的RecordSourceType属性自动被设置为:1-别名,RecordSource属性自动被设置为:RSB。,2020/8/4,50,表格控件举例,向表单添加两个命令按钮控件,设置各控件的属性如表7-10所示:,2020/8/4,51,表格控件举例,在Command1的Click事件中输入下列代码: SKIP -1 IF BOF() =MESSAGEBOX(已到第一条记录!,48,

15、 ; 信息) This.Enabled=.F. ELSE Thisform.Refresh This.Parent.Command2.Enabled=.T. ENDIF,2020/8/4,52,表格控件举例,在Command2的Click事件中输入下列代码: SKIP IF EOF() =MESSAGEBOX(已到最后一条记录!,48,信息) This.Enabled=.F. SKIP-1 ELSE Thisform.Refresh This.Parent.Command1.Enabled=.T. ENDIF,2020/8/4,53,7.1.7-2 页框控件,页框是一个包含页面的容器对象,用户

16、可在页框中定义多个页面,以生成带选项卡的对话框。 在表单中添加页框控件的步骤为: 在表单控件工具栏中单页框控件按钮; 移动鼠标指针到表单中,单击并拖拽到合适的大小;,2020/8/4,54,页框控件,页框的常用属性有: PageCount:设置页框中页面的个数。 页面的常用属性有: Caption:设置页面的名称。,2020/8/4,55,页框控件,在页框中选择不同页面的步骤如下: 在页框中单击鼠标右键,选择编辑,则页框呈现出选中状态,边框变粗; 单击要选择的页面标签。,2020/8/4,56,页框控件,在页面中加入控件的步骤如下: 选中要加入控件的页面; 在表单控制工具栏中单击所需控件,移动

17、鼠标到所选页面中,单击并拖拽到合适大小。,2020/8/4,57,页框控件举例,例7-11 设计一个如图所示的查询表单,要求对RSB表可按姓名查询,也可按编号查询。并显示查找到的记录的编号、姓名、性别、职称、基本工资、简历、相片字段的值,如果找不到满足条件的记录,则弹出一个信息窗,显示“没找到满足条件的记录,请重新输入!”,2020/8/4,58,页框控件举例,操作步骤如下: 新建一个表单,添加一个页框控件。 在页框的第一个页面中添加一个标签控件、一个文本框控件、一个命令按钮,操作方法为: 在页框中单击鼠标右键,选择编辑,选中第一个页面,在表单控件工具栏中单击标签控件,移动鼠标到第一个页面中,

18、单击鼠标。,2020/8/4,59,页框控件举例,将RSB.DBF添加到表单的数据环境中,分别将编号、姓名、性别、职称、基本工资、简历、相片字段拖入页框的第一个页面;按图7-18所示位置摆放。 设置各控件的属性如表7-11所示,2020/8/4,60,页框控件举例,2020/8/4,61,页框控件举例,2020/8/4,62,页框控件举例,选择页框第一个页面的所有对象,选择【编辑】【复制】,在属性窗口的对象列表中选择Page2对象,再选择【编辑】【粘帖】,这一步操作将所有的对象复制到页框的第二个页面中;并修改标签控件的Caption的属性为:请输入编号:,2020/8/4,63,页框控件举例,

19、在PageFrame1.Page1.Command1的Click事件中输入下列代码: LOCAT FOR ALLTRIM(姓名)=; ALLTRIM(This.Parent.Text1.Value) IF NOT FOUND() =MessageBox(没找到满足条件的记录,; 请重新输入!,48,信息) ENDIF Thisform.Refresh This.Parent.Text1.setfocus,2020/8/4,64,页框控件举例,在PageFrame1.Page2.Command1的Click事件中输入下列代码: LOCAT FOR ALLTRIM(编号)=; ALLTRIM(Th

20、is.Parent.Text1.Value) IF NOT FOUND() =MessageBox(没找到满足条件的记录,; 请重新输入!,48,信息) ENDIF Thisform.Refresh This.Parent.Text1.setfocus,2020/8/4,65,页框控件举例,在PageFrame1的Init事件中输入下列代码: GO BOTTOM SKIP 在PageFrame1. Page1的Activate事件中输入下列代码: This.Text1.setfocus 在PageFrame1. Page2的Activate事件中输入下列代码: This.Text1.setfo

21、cus,2020/8/4,66,7.1.8 命令按钮组控件,命令按钮组控件是一个容器控件,它可包含若干个命令按钮,并能统一管理这些命令按钮,命令按钮组与组内的各命令按钮都有自己的属性,事件和方法程序,因而既可单独操作各命令按钮,也可对组控件进行操作。,2020/8/4,67,命令按钮组控件,Click事件的判别 若命令按钮组及其所含的各命令按钮分别设置了Click事件代码,Visual FoxPro以命令按钮的Click事件代码优先,忽略命令按钮组的Click事件代码。若单击组内空白处,既不触发组控件的Click事件,也不触发命令按钮的Click事件。,2020/8/4,68,命令按钮组控件,单击某命令按钮时,组控件的Value属性就会获得一个数值或字符串:当Value属性为1(默认值)时,将获得命令按钮的顺序号,它是一个数值;而当Value属性设置为空时,将获得命令按钮的Caption值,它是字符串。于是在命令按钮组的Click事件代码中便可判别出单击的是哪个命令按钮,并决定执行的动作。,2020/8/4,69,命令按钮组控件,处理代码如下: DO CASE CASE Th

温馨提示

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

评论

0/150

提交评论