第6章表单设计课件.docx
- 文档编号:25417097
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:28
- 大小:138.90KB
第6章表单设计课件.docx
《第6章表单设计课件.docx》由会员分享,可在线阅读,更多相关《第6章表单设计课件.docx(28页珍藏版)》请在冰豆网上搜索。
第6章表单设计课件
第6章表单及其控件的创建与使用
6.1表单概述
表单:
类似于Windows中的各种标准窗口与对话框,是一种容器类,可包括多个控件对象,用于处理各种数据。
即用户与计算机进行交流的一种屏幕界面,用于数据的显示、输入、修改。
表单集:
可包含一张或多张表单的容器。
数据环境:
在打开或修改一个表单或报表时需要打开的全部表、视图和关系。
它以窗口形式(类似于数据库设计器)反映出与表单有关的表、视图、表之间关系等内容。
可以用数据环境设计器来创建和修改表单的数据环境。
6.2使用向导创建表单
利用表单向导可以创建基于一个表的表单,也可以创建基于具有一对多关系的二个表的表单。
6.2.1利用向导创建基于一个表的表单
例1:
利用向导创建基于一个学生表的表单,浏览学生表中的信息
注意:
表单保存后产生两个文件,即表单文件(.SCX)和表单备注文件(.SCT)
6.2.1利用向导创建一对多表单
例2:
利用向导创建一对多表单,浏览学生表和成绩表中的对应学生的信息和成绩信息
6.3表单设计器
6.3.1表单设计器概述
创建或修改表单
Ø项目管理器中创建表单
ØCreateform表单名&&创建表单
ØModifyform表单名&&修改、打开表单
表单设计器界面及其组成:
表单设计器表单设计器工具栏表单控件工具栏属性窗口
1.表单设计环境的设置
2.“表单“菜单
3.“表单设计器“工具栏
4.“表单控件“工具栏
5.“布局“工具栏
6.“属性窗口”
表单及其中的控件都是一个个的对象,他们有各自的属性、事件和方法。
7.为表单集或表单创建新属性和新方法
6.3.2事件与方法的代码设置
表单(集)及其所包含的对象都有与之相关的事件和方法程序。
事件可以是用户行为触发的,也可以是系统行为触发的。
方法程序是和对象相联系的过程,只能通过程序以特定的方式激活。
1.编辑事件处理代码或方法程序代码的方式:
(1)系统菜单命令“显示”->”代码”
(2)在“属性”窗口中双击某事件或方法
(3)在“表单设计器”窗口中双击表单或某控件
2.常用的方法及其调用
(1)Setall方法:
为容器对象中的所有控件或某一类控件制定一个属性设置,其语法格式为:
container.setall(cproperty,value,[,cclass])
例1:
将表格控件中列对象的backcolor属性设置为红色
Thisform.grid1.setall(“backcolor”,rgb(255,0,0),”column”)
例2:
将表格控件中每个列对象包含的标头的forecolor属性设置为绿色
Thisform.grid1.setall(“forecolor”,rgb(0,255,0),”header”)
(2)常用的方法
.Hide/Show方法&&表单隐藏/显示
.Setfoucs方法&&对象获得焦点
.Refresh/release&&表单刷新/释放
6.3.3表单的数据环境
表单(集)的数据环境包括了与表单交互作用的表和视图,以及表之间的关系;表单打开时,数据环境中的表和视图自动被打开;当表单关闭或释放时,数据环境中的表和视图自动被关闭。
1.数据环境的设置
(1)永久关系或临时关系的设置
(2)数据环境中属性的设置
Dataenvironment,
cursor1(order),cursor2,
relation1(childorder,relationalexpr)
2.控件与数据的关系
根据控件与数据环境中数据的关系,控件可以分为两类:
数据绑定型控件和非数据绑定型控件。
绑定型控件:
是指与表或视图等数据源中的数据绑定的控件:
复选框,列表框,组合框,命令组,编辑框,列,选项按纽,选项组,微调框,文本框,表格等控件可以与数据绑定。
除表格以外的绑定型控件通过对Controlsource属性的设置为为表或视图的某个字段或内存变量来实现数据绑定
表格控件通过Recordsourcetype和recordsource属性设置来和表或视图进行绑定
非绑定型控件:
不与数据绑定的控件,主要有线条,标签,命令按钮和命令按钮组等控件
6.3.4使用表单设计器修改表单
1.修改表单布局
选择控件、移动控件、缩放控件、复制控件、添加控件
2.修改表单的外观属性
Ø表单的标题(caption)
Ø标题前面的控制菜单图标(icon)
Ø有无最大化/最小化按钮(maxbutton/minbutton)
Ø边框样式(borderstyle)
Ø是否自动居中(autocenter)等
Ø颜色(backcolor,forecolor)与背景(picture)
Ø文字的字体和大小(fontname,fontsize)
Ø控件可用与可见(enabled,visible)
6.3.5使用表单设计器创建表单
1.利用表单生成器创建表单
2.利用数据环境创建表单中的控件
可以将字段、表或视图从数据环境中拖放到表单上,从而直接创建与字段、表或视图数据相对应的控件
若要创建一个
将下面的项拖动到表单
表格
表
复选框
逻辑型字段
编辑框+标签
备注型字段
OLE绑定型控件+标签
通用型字段
文本框+标签
其他类型的字段
3.利用“表单控件”工具栏向表单中添加控件
4.表单的保存与运行
Doform表单名
6.3.6用表单集扩展表单
通过将多个表单包含在一个表单集中,或基于一个表单创建表单集并向表单集中添加表单
6.3.7控制表单的行为
下表是定义表单外观和行为的常用属性
属性、事件、方法
说明
默认值
AlwaysOnTop属性
控制表单是否总是处在其他打开窗口之上
假(.F.)
AutoCenter属性
控制表单初始化时是否让表单自动地在VisualFoxPro主窗口中居中
假(.F.)
BackColor属性
决定表单窗口的颜色
255,255,255
BorderStyle属性
决定表单是否有边框,若有边框,是单线边框、双线边框,还是系统边框。
如果BorderStyle为3(系统),用户可重新改变表单大小
3
Caption属性
决定表单标题栏显示的文本
Forml
Closable属性
控制用户是否能通过双击“关闭”框来关闭表单
真(.T.)
controlbox
指定是否显示表单控制菜单图标
Icon
控制表单控制菜单图标
MaxButton属性
控制表单是否具有最大化按钮
真(.T.)
MinButton属性
控制表单是否具有最小化按钮
真(.T.)
Movable属性
控制表单是否能移动到屏幕的新位置
真(.T.)
WindowState属性
控制表单是最小化、最大化还是正常状态
0正常
windowtype
指定表单是模式表单还是无模式表单
无模式
showwindow
将表单设置为顶层表单、在顶层表单中或在屏幕中
6.3.8创建单文档界面与多文档界面
注意:
利用showwindow和desktop属性可以将表单设置为顶层表单、浮动表单或子表单。
6.4控件
6.4.1标签(Label):
用于显示文本的图形控件,保存不希望用户改动的文本,在表单运行时其文本不能被用户直接更改,通常用于显示提示信息。
几个主要的属性:
Caption(标签内容256)
Backstyle(是否透明)
Alignment(文本对齐方式)
Autosize(自动调整大小)
Wordwrap(是否换行)
Name(标签名称)
Fontname(字体)
Fontsize(字号)
Forecolor(字体颜色)
Fontbold(粗体)
Fontitalic(斜体)
举例1:
该标签控件有3行内容(汉字),要自动调整控件大小则:
首先将AUTOSIZE属性和WORDWRAP属性都设置为真,然后设置CAPTION属性
6.1.2文本框与编辑框
1.文本框(Textbox):
是一种常用控件,通过文本框可以显示,输入或编辑表中的非备注型字段的数据,文本框中一般是单行的文本。
文本框的主要属性:
Name属性:
文本框控件的名字
Controlsource属性:
指定与文本框绑定的数据源(字段或内存变量)。
Value属性:
指定文本框的数据(未绑定),保存文本框中的数据,默认值为空字符串,在程序代码中,若需要引用或更改文本框中所显示的数据,可通过引用或设置Value属性来实现。
Passwordchar属性:
指定作为占位符的字符,即用占位符来掩盖其输入的字符,但是文本框的Value属性将保存用户的实际输入。
Inputmask属性:
指定控件中数据的输入格式和显示方式(X,9,A,)
Format属性:
指定控件的VALUE属性的输入和输出格式(A,D,K,T,!
)
Readonly属性:
指定控件内容是否只读。
Alignment属性:
文本的对齐方式
Borderstyle属性:
边框样式
Backstyle属性:
是否透明
Specialeffect属性:
是否具有三维格式
文本框的输入格式与显示格式:
Inputmask属性:
指定控件中数据的输入格式和显示方式(X,9,A,)
Format属性:
指定控件的VALUE属性的输入和输出格式(A,D,K,T,!
)
对于日期型文本数据:
dateformat属性:
设置日期格式
datemark属性:
日期分隔符
century属性:
设置世纪打开情况。
举例2:
利用文本框与字段绑定,显示学生表中的学生学号,姓名性别等信息(与表中的字段进行绑定)
举例3:
利用文本框来设置注册,登陆界面(通过Value属性取值)
VALID事件:
在控件失去焦点前发生,可以为文本框的文本设置有效性规则。
举例4.文本框的输入格式与显示格式:
帐号文本:
inputmask,format,
一般数值文本框:
inputmask,format,value
内容为日期型文本:
dateformat,datemark,century,value
2.编辑框(Editbox):
与文本框类似,可以输入或编辑长字段或备注字段,允许自动换行并能用光标移动键,操作滚动条来浏览。
Controlsource:
绑定备注型字段,利用编辑框显示或编辑备注型字段。
Scrollbars:
决定编辑框是否有垂直的滚动条。
Name:
编辑框的名称
举例5:
浏览学生表中的备注型字段
6.4.7微调框(Spinner)
微调框控件:
通过单击微调框控件的上箭头或下箭头,或者在微调框内键入一个数值,通常与数值型字段进行绑定。
主要的属性:
Controlsource:
指定与对象建立的数据源;
Value:
控件的当前状态;
Keyboardhighvalue:
键盘接受的最大值;
Keyboardlowvalue:
键盘接受的最小值;
Spinnerlowvalue:
按钮接受的最小值;
Spinnerhighvalue:
按钮接受的最大值;
Increment:
每次的增量.
举例6:
通过微调框对成绩表(cj)进行学生成绩的修改(需要和成绩字段绑定)
6.4.11命令按纽和命令按纽组
命令按纽(Commandbutton)通常用来启动一个事件以完成一种功能,如关闭一个表单、移动记录、打印报表等动作。
命令按钮常用的属性:
Name属性:
指定命令按纽的名字;
Caption属性:
指定在命令按纽上显示的文本;
Picture属性:
指定命令按纽上显示的图形;
Default属性:
指定按下
Cancel属性:
指定按下
Enabled属性:
指定是否可以响应用户引发的事件,即命令按纽是否可用;
Downpicture属性:
指定命令按纽被选中时的图形;
Autosize属性:
根据内容自动调节大小;
Visible属性:
指定命令按纽是否可见
Clickevents事件:
单击命令按钮时触发的事件。
举例7:
利用命令按钮浏览学生表的学生信息
命令按钮组(Commandgroup):
是一个容器型控件,它包括一组命令按钮。
常用的属性:
Buttoncount属性:
指定命令按纽组中包含命令按纽的数目,其默认值为2;
Borderstyle属性:
指定边框样式
Value属性:
指定控件的当前状态,其默认值为1,在运行时,其值为所选命令按钮的顺序号。
Clickevents事件:
单击事件
讲解命令按钮组生成器,来设置命令按钮组的布局
注意:
对命令按钮组来说,可以为每个命令按钮分别设置相应的事件处理代码,也可以通过命令按钮组设置整体事件代码来响应各个命令按钮的事件。
举例8:
利用命令按钮组来浏览学生表的学生信息
6.4.5选项按纽组
选项按纽组(Optiongroup)是包含多个选项按钮的容器控件,运行时允许用户从中选择一个按纽,选项按纽旁边的圆点指示当前的选择。
选项按钮组常用的属性:
Buttoncount:
决定选项按纽的个数,默认为2个;
Bordetstyle:
指定边框样式;
Controlsource:
指定所绑定的数据源,或将选项值写入数据源;
Value:
指定控件的当前状态,表明用户选定的哪一个按纽。
说明:
P193
选项按钮常用的属性:
Caption:
设置选项按纽的标题;
Alignment:
设置选项按纽的标志和标题的排列方式;
举例9:
利用选项按纽组进行修改教师表的性别,利用标签,文本框,选
项组,命令按纽组等。
举例10:
利用编辑框,选项按纽组,命令按纽组做选择题考试界面,可以重复考试
举例11:
根据选项按纽组中所选择的职称在列表框中显示该职称的教师工号和姓名。
docase
casethis.value=1
ifnotbof()
skip–1
else
mand1.enabled=.f.
endif
mand2.enabled=.t.
thisform.refresh
casethis.value=2
ifnoteof()
skip
else
mand2.enabled=.f.
endif
mand1.enabled=.t.
thisform.refresh
casethis.value=3
c1=0
n=recno()
scan
ifalltrim(user)=answer
c1=c1+1
endif
endscan
counttoc2
cstring=alltrim(str(c1/c2*100,6,2))+”%”
=messagebox(“正确率为:
”+cstring,64+0+0,”成绩”)
gon
casethis.value=4
replacealluserwith“”
gotop
casethis.value=5
thisform.release
endcase
thisform.refresh
6.4.6复选框(Checkbox)
利用复选框指定或显示一个逻辑状态:
真/假,开/关,是/否等,通常与逻辑型字段绑定
主要的属性:
Caption属性:
指定复选框标题中显示的文本;
Controlsource属性:
指定所绑定的数据源,通常是表中的逻辑型字段;
Value属性:
指定复选框的当前状态,其取值可以为0,1,2,分别表示“清除选择”、“选择”、“混合值”,注意:
复选框有三种状态六种取值。
Style属性:
指定复选框控件的样式(图形或标准样式)
注意:
复选框的显示状态和VALUE的对应关系:
状态
VALUE值
没选中
0或.F.
选中
1或.T.
复选框变为灰色
2或.NULL.
举例11:
利用复选框输入和设置课程类别是否为必修课。
举例12:
利用复选框控制列表框中显示教师工号,还是显示教师工号和姓名。
6.4.3列表框
列表框(Listbox):
主要用于显示一组预定的值,通过滚动条操作浏览列表信息,用户可以从列表框中可以选择需要的数据。
常用的属性:
Columncount:
列的个数
Rowsourcetype:
指定数据源的类型(如表或查询)(通常有三种常用选择:
值,SQL语句,字段)。
Rowsource:
指定数据源
Controlsource:
用于指定用户从列表框中选择的值保存在何处。
Boundcolumn:
确定多列中哪一列与value绑定
Listcount:
列表框或组合框中的元素的个数
Selected属性:
指定列表框或组合框中的数据元素是否处于选中状态
Sorted:
按字母进行排序
Mutiselected:
在列表框内进行多重选择
Moverbars:
显示移动条,进行手工排序。
List:
在调用列表框中元素,相当于数组名
Clear:
清除列表框中所有的条目
Additem方法:
向列表框或组合框中添加一个条目
Removeitem方法:
从列表框或组合框中删除一个条目
Requery方法:
举例:
1利用列表框显示JS表的系代号字段(设置rowsourcetype,rowsource)(两种方式),destroy事件:
当释放一个对象时发生。
2利用列表框中显示(xs)多列字段(columncount,rowsourcetype,rowsource)
结合boundcolumn,controlsource说明哪一列数据与数据源绑定
3利用文本框和列表框之间进行数据转换(sorted,moverbars进行排序)。
文本框:
keypress事件:
当用户按住并释放一个键时发生。
ifnkeycode=13
thisform.list1.additem(this.value)
this.value=””
endif
thisform.refresh
列表框:
dblclick事件:
双击鼠标时发生
thisform.text1.value=this.list(this.listindex)
this.removeitem(this.listindex)
thisform.refresh
4利用两个列表框通过命令组进行数据之间的传递:
interactivechange事件:
当用户使用键盘或鼠标更改控件的值时发生。
thisform.cmdg1.cmd1.visible=.t.
thisform.cmdg1.cmd2.visible=.f.
thisform.cmdg1.cmd1.visible=.f.
thisform.cmdg1.cmd2.visible=.t.
l1=thisform.list1
l2=thisform.list2
docase
casethis.value=1&&右移
forI=1tol1.listcount
ifl1.selected(i)
l2.additem(l1.list(i))
l1.removeitem(i)
endif
endfor
casethis.value=2&&左移
forI=1tol2.listcount
ifl2.selected(i)
l1.additem(l1.list(i))
l2.removeitem(i)
endif
endfor
endcase
casethis.value=3&&全右移
fori=1tol1.listcount
l2.additem(l1.list(i))
endfor
l2.clear
thisform.refresh
casethis.value=4&&全左移
fori=1tol2.listcount
l1.additem(l2.list(i))
endfor
l1.clear
endcase
5组合框:
一种下拉式的列表框,可以从中选择一项或人工输入一个值,兼有列表框和文本框的功能,但只能显示一列,可通过属性来设置输入还是显示(style-0,2)
举例:
在列表框中选定教师的系代号,在组合框中显示相应系的教师信息
9表格:
表格是一种将数据以表格形式表示出来的控件,一个按行和列显示数据的容器对象,表格包括列,列标头,列控件等。
最常见的用途:
显示一对多表关系中的子表。
表格的数据源可以是表,视图,查询。
主要的属性:
表格属性:
Allowheadersizing
(表头高度)
Allowrowsizing
(行高度)
Columncount
(列的数目)
Deletemark
(显示删除列)
Recordsourcetype
(数据源类型)
Recordsource
(数据源)
Scrollbars
(滚动条)
Setall(某一类控件设置属性)
列控件属性:
Controlsource
(列控件的数据源)
Resizable
(列宽度是否调整)
Dynamicfontsize
(动态调整字体的大小)
Dynamicforecolor
(动态调整字体的颜色)
列标头属性:
Alignment(对齐的方式)
Caption(列标题)
举例:
1利用表格的列控件的controlsource属性绑定字段,并利用INIT事件代码改变不及格学生的成绩的字体大小和颜色(两种方法)。
This.column3.dynamicfontsize=”iif(cj.cj<60,14,9)”
This.column3.dynamicforecolor=”iif(cj.cj<60,rgb(255,0,0),rgb(0,0,255))”
This.setall(“dynamicbackcolor”,”iif(mod(recno(),2)=0,rgb(255,0,0),rgb(0,255,0)”,”column”)
2创建一对多表单,利用表格控件的recordsource(type)来绑定数据源
补充讲解数据环境中临时关系的建立:
(1)若在数据库中两张表存在永久关系---自动添加到数据环境中
(2)若没有永久关系----在数据环境中创建临时关系(两种情况)
(3)编辑关系:
relationexpr,onetmany
10页框:
一种用于创建选项卡式对话框的容器类,一个页框可以包含多个页
面,但每次只能有一个活动页面。
页框定义了页面的总体特征:
大小,位
置,边框类型,活动页面等;对页面所在的表单使用REFRESH方法时,
只刷新当前活动的页面。
页框的主要属性:
pagecount:
包含的页面数目;
tabs:
确定页框控件是否有选项卡;
tabstyle:
指定选项卡大小均等且页框的宽度相同
backcolor:
页面的背景色
caption:
选项卡的标题
tabstretch:
对选项卡的标题太长的显示设置
activepage:
设置页框中的活动页面
举例:
(1)创建选项卡式页框,创建具有多重行的选项卡式页框,非
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表单 设计 课件