| 5.1 表单(一)
---表单的操作
出处:www.bianceng.cn 编辑:Mali
表单(form)在vfp中,是一种最重要,最常见的容器类对象,在表单中可以添加各种对象,比如文本框,这些对象用于输入或输出等操作.在程序运行时,表单是用户与应用程序之间进行交互的窗口,也就是说,在开发vfp程序时,一般都使用表单作为应用程序的界面.
一.创建表单:
方式一:单击"文件"→"新建",对话框中选"表单",在弹出的对话框中选"新建"表单,则系统弹出一个空白的表单.用户即可在这个空白的表单上进行设计.
方式二:在项目管理器中,选中"表单",单击右侧的"新建"按钮,如图11

方式三:在命令窗口中输入"create form 表单名"命令,一样可以打开表单设计器.
二.表单设计器中的操作:
1.选择表单控件:单击表单控件可以选择该控件;按住ctrl不松再单击多个表单控件,可同时选择多个表单控件.如果在表单设计器中拖动鼠标,在表单上画一个区域,则该区域内的所有控件都被选择.
2.向表单中添加控件:单击表单控件工具栏中的控件,光标移至表单中该控件的位置,单击或拖动鼠标画出该控件大小后松开.
3.移动表单中控件的位置:单击要移动位置的表单控件,拖动其到指定位置,或者单击选中该控件后,用方向键移动
4.改变控件的大小:鼠标单击控件,控件四周出现黑色的小方块,再将指针指向小方块,待指针变成双箭头时拖动即可.
5.删除控件:用鼠标单击选中控件,按delete键即可.
6.复制控件:单击选中控件,按组合键ctrl+c复制,然后鼠标在目的地单击,按组合键ctrl+v粘贴.
说明:复制控件时,控件内的代码被一起复制.这是一个很有用的操作,比如,我们做一个表单,里面需要很文本框控件,我们可以先做出来一个,其余的复制即可.
三.表单的数据环境:表单中的数据环境是一个容器,用于设置表单中使用的表和视图以及表单所要求的表之间的关系.这些表和视图及表之间的关系都数据环境容器中的对象,可以分别设置它们的属性.在执行表单时,数据环境中的表和视图被自动打开,表之间的关系被自动建立.当表单被释放时,数据环境中设置的表和视图被自动关闭.
1.数据环境的打开:右击表单空白处,选"数据环境"命令,如图1,

此时会弹出一个对话框,如图2,

我们选中"工资情况",单击"添加",再单击"关闭",即可打开"数据环境"容器,如图3.

2.向数据环境中添加表或视图:在数据环境设计器中右击,选"添加"命令,如图4,

我们在弹出的对话框中选中"职工档案",单击"添加",再单击"关闭",如图5,

这样我们就把"职工档案"表也添加到表单的数据环境中了,添加后的数据环境如图6,

即现在的数据环境中有两个表.
3.在数据环境中移动表或视图:在数据环境设计器中单击选中要移动的表或视图,按右键,选"移动".
4.在数据环境中设置关系:如果加入数据环境的表具有在数据库中设置的关系,则这些关系自动带入数据环境中.如果表之间没有关系,则可在数据环境中进行设置表之间的临时关系.若要在数据环境中设置临时关系,可从主表中拖动字段到相关表中相匹配的索引标识.在数据环境中设置了一个临时关系后,会在表之间出现一条连线来指示这个关系.例如,我们在数据环境中拖动"工资情况"表的"编号"字段到"职工档案"表的"bh1"索引标识上,即在这两个表之间建立了一个临时关系,如图7

四.表单常用的属性:见下表:
属性 |
默认值 |
功能 |
caption |
form1 |
指定表单标题栏显示的文本 |
name |
form1 |
指定表单对象名,在程序设计中可以通过引用表单名来引用表单 |
borderstyle |
3 |
决定表单边框:0-无边框,1-单线边框,2-固定对话框,3-可调边框 |
maxbutton |
.T. |
控制表单是否有最大化按钮 |
minbutton |
.T. |
控制表单是否有最小化按钮 |
windowstate |
普通 |
控制表单是普通(0),最小化(1),最大化(2).如windowstate为2,则maxbutton和minbutton将不起作用. |
alwaysontop |
.F. |
控制表单是否总是处在其它打开的窗口之上,即防止所引用的表单被其它表单所覆盖 |
autocenter |
.F. |
控制表单运行时是否自动在vfp主窗口居中 |
moveable |
.T. |
控制表单运行时,是否可移动表单到屏幕的新位置上 |
visible |
.T. |
指定表单在运行时是可见的还是隐藏的 |
closable |
.T. |
指定表单运行时,用户是否能够通过单击"关闭"按钮来退出表单 |
windowtype |
无模式 |
控制表单是无模式还是模式表单
0-无模式,用户不必关闭表单就可方问其他界面
1-模式,用户必须关闭当前表单方可访问其他界面 |
五.表单的事件:表单的常用事件如下表:
事件 |
触发时间 |
activate |
当一个表单变成活动表单时触发 |
deactivate |
表单从活动变成不活动时触发 |
init |
当表单第一次创建时触发,一般将表单的初始化代码放在其中 |
load |
创建表单前触发,事件发生在init事件之前.因为此时表单中的控件尚未建立,所以该事件的代码不能用于处理表单中的控件,但可用来打开数据库和表等 |
unload |
释放表单是触发,该事件发生在destroy事件之后 |
click |
在鼠标单击表单时触发 |
dbclick |
在鼠标双击表单时触发 |
destroy |
当释放表单时触发 |
error |
当方法中有一个运行错误时触发 |
六.表单的方法:表单常用的方法如下表:
方法 |
功能 |
release |
从内存中释放表单或表单集 |
refresh |
重新绘制表单或控件,并更新所有的值 |
hide |
设置visible属性为.F.来隐藏表单(集),使表单集不可见,但未从内存中清除 |
show |
设置visible属性为.T.来显示表单(集),使表单(集)为活动对象.参数:1-模式
2-无模式(默认) |
move |
移动一个对象 |
draw |
重新绘制表单对象 |
addobject |
在运行时给容器对象增加一个对象 |
saveas |
将对象存入scx文件中 |
cls |
清除一个表单中的图形和文本 |
pset |
给表单上的一个点绘制指定的颜色 |
line(起点X,起点Y,终点X,终点Y) |
在指定位置绘制直线 |
box([起点X,起点Y,]终点X,终点Y) |
在指定位置画方框,其他参数由下列属性指定:
度量单位-scalemode 线宽-drawwith 方式-drawmode
风格-drawstyle 填充颜色-fillcolor 填充风格-fillstyle
略起点,则以currentX,currentY作为起点 |
circle(半径,圆心[,纵横比]) |
在表单上绘制一个圆或一段圆弧,其他参数同box |
print |
在表单对象上显示一个字符串 |
七.表单文件的执行和关闭:
1.执行表单文件:
(1).在表单设计器中执行表单:按右键,在快捷菜单中选择"执行表单",或在表单菜单中选择"执行表单"菜单项
(2).在项目管理器中执行表单:在项目管理器中选中表单名,单击右侧的"运行"按钮
(3).在在程序中调用执行:在表单设计器中直接执行表单用于系统开发阶段的调试工作,实际应用中,表单一般通过程序代码调用执行,调用命令如下:
格式:do form 表单文件名 [name 表单名] [with 参数表] [to 变量名]
说明:
Ⅰ.name表单名指定执行表单的名字,以后引用该表单时使用这个名字
Ⅱ.with参数表用于向表单的init事件代码传递参数.如果执行的是表单集,要求表单集的windowtype为0(无模式)或(1模式),参数表用于向表单集的init事件传递代码
Ⅲ.to 变量名接收表单unload事件的return语句的返回值,但要求表单的windowtype为1(模式)
2.激活事件处理:
格式:read events
说明:只有执行了read events,vfp才启动事件处理.当执行clear events后,系统停止事件处理
3.关闭表单:
格式:表单引用名.release
例如:thisform.release用于关闭当前表单
[返回] |