表单知识.docx

上传人:b****8 文档编号:28529867 上传时间:2023-07-18 格式:DOCX 页数:10 大小:20.10KB
下载 相关 举报
表单知识.docx_第1页
第1页 / 共10页
表单知识.docx_第2页
第2页 / 共10页
表单知识.docx_第3页
第3页 / 共10页
表单知识.docx_第4页
第4页 / 共10页
表单知识.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

表单知识.docx

《表单知识.docx》由会员分享,可在线阅读,更多相关《表单知识.docx(10页珍藏版)》请在冰豆网上搜索。

表单知识.docx

表单知识

VFP中的表单发布日期:

2010/5/210:

14:

00来源:

作者:

点击:

1386

表单(form)在vfp中,是一种最重要,最常见的容器类对象,在表单中可以添加各种对象,比如文本框,这些对象用于输入或输出等操作.在程序运行时,表单是用户与应用程序之间进行交互的窗口,也就是说,在开发vfp程序时,一般都使用表单作为应用程序的界面.一.创建表单:

方式一:

单击"文件"→"新建",对话框中选"表单",在弹出的对话框中选"新建"表单,则系统弹出一个空白的表单.用户即可在这个空白的表单上进行

 

-

表单(form)在vfp中,是一种最重要,最常见的容器类对象,在表单中可以添加各种对象,比如文本框,这些对象用于输入或输出等操作.在程序运行时,表单是用户与应用程序之间进行交互的窗口,也就是说,在开发vfp程序时,一般都使用表单作为应用程序的界面.

一.创建表单:

方式一:

单击"文件"→"新建",对话框中选"表单",在弹出的对话框中选"新建"表单,则系统弹出一个空白的表单.用户即可在这个空白的表单上进行设计.

方式二:

在项目管理器中,选中"表单",单击右侧的"新建"按钮,如图11

方式三:

在命令窗口中输入"createform表单名"命令,一样可以打开表单设计器.

二.表单设计器中的操作:

1.选择表单控件:

单击表单控件可以选择该控件;按住ctrl不松再单击多个表单控件,可同时选择多个表单控件.如果在表单设计器中拖动鼠标,在表单上画一个区域,则该区域内的所有控件都被选择.

2.向表单中添加控件:

单击表单控件工具栏中的控件,光标移至表单中该控件的位置,单击或拖动鼠标画出该控件大小后松开.

3.移动表单中控件的位置:

单击要移动位置的表单控件,拖动其到指定位置,或者单击选中该控件后,用方向键移动

4.改变控件的大小:

鼠标单击控件,控件四周出现黑色的小方块,再将指针指向小方块,待指针变成双箭头时拖动即可.

5.删除控件:

用鼠标单击选中控件,按delete键即可.

6.复制控件:

单击选中控件,按组合键ctrl+c复制,然后鼠标在目的地单击,按组合键ctrl+v粘贴.

说明:

复制控件时,控件内的代码被一起复制.这是一个很有用的操作,比如,我们做一个表单,里面需要很文本框控件,我们可以先做出来一个,其余的复制即可.

三.表单的数据环境:

表单中的数据环境是一个容器,用于设置表单中使用的表和视图以及表单所要求的表之间的关系.这些表和视图及表之间的关系都数据环境容器中的对象,可以分别设置它们的属性.在执行表单时,数据环境中的表和视图被自动打开,表之间的关系被自动建立.当表单被释放时,数据环境中设置的表和视图被自动关闭.

1.数据环境的打开:

右击表单空白处,选"数据环境"命令,如图1,

 

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

 

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

 

2.向数据环境中添加表或视图:

在数据环境设计器中右击,选"添加"命令,如图4,

 

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

 

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

 

即现在的数据环境中有两个表.

3.在数据环境中移动表或视图:

在数据环境设计器中单击选中要移动的表或视图,按右键,选"移动".

4.在数据环境中设置关系:

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

 

四.表单常用的属性:

见下表:

属性默认值功能

captionform1指定表单标题栏显示的文本

nameform1指定表单对象名,在程序设计中可以通过引用表单名来引用表单

borderstyle3决定表单边框:

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).在在程序中调用执行:

在表单设计器中直接执行表单用于系统开发阶段的调试工作,实际应用中,表单一般通过程序代码调用执行,调用命令如下:

格式:

doform表单文件名[name表单名][with参数表][to变量名]

说明:

Ⅰ.name表单名指定执行表单的名字,以后引用该表单时使用这个名字

Ⅱ.with参数表用于向表单的init事件代码传递参数.如果执行的是表单集,要求表单集的windowtype为0(无模式)或(1模式),参数表用于向表单集的init事件传递代码

Ⅲ.to变量名接收表单unload事件的return语句的返回值,但要求表单的windowtype为1(模式)

2.激活事件处理:

格式:

readevents

说明:

只有执行了readevents,vfp才启动事件处理.当执行clearevents后,系统停止事件处理

3.关闭表单:

格式:

表单引用名.release

例如:

thisform.release用于关闭当前表单

八.为表单创建新属性:

1.打开表单,单击"表单"菜单,选"新建属性"菜单项,系统弹出"新建属性"对话框

2.在该对话框的"名称"框中输入属性名,同时可在说明框中加上该属性的注释,单击"添加"即可,如图8

 

3.选access项和assign项,则在新建表单属性的同时创建该属性对应的方法程序,其中access方法在查询该属性时被执行,assign方法程序在修改该属性时被执行.

4.单击对话框中的"关闭"按钮,该属性即被添加到"属性"窗口中,选中表单,在"属性"窗口中可选中并检查该属性,如图9

 

九.为表单创建新方法程序:

1.打开表单,单击"表单"菜单,选"新建方法程序"菜单,系统显示"新建方法程序"对话框

2.输入方法程序的名称后,单击"添加"按钮即可,如图10.

 

方法程序代码应在"属性"窗口的"方法程序"选项卡中选择该方法程序名双击,在弹出的编辑器中输入方法程序.新建的方法程序的执行方法与系统提供的方法程序相同.

十.例一:

制作表单xggz.scx,修改人员工资数据.

1.新建一个表单,右击表单空白处,将"工资情况"表添加到数据环境中

2.在"数据环境设计器"中,将"工资情况"表的各个字段,依次拖到表单上,如图11,

 

并调整它们的位置,全部字段拖到表单上后,如图12

 

3.向表单添加5个命令按钮:

command1,command2,command3,command4和command5,将它们的caption属性依次设为"第一个","上一个","下一个","最后一个","退出",并调整它们的位置,如图13.

 

再次说明一下修改控件属性的方法:

以command1为例,在"表单设计器"中选中command1,其四周出现黑色方块,表明已被选取.然后在"属性"窗口中选"全部"选项卡,拖动滚动条,选中caption属性,在上方的文本框中输入属性值:

第一个,如图14

 

4.将表单的caption属性(即标题栏显示的内容)设为"修改工资",autocenter属性设为.T.(此属性设为真,运行时表单自动居中).

5.编写代码:

★"第一个"按钮(command1)的click事件代码:

gotop

thisform.refresh&&刷新显示

★"上一个"按钮(command2)的click事件代码:

if!

bof()

skip-1&&如果当前记录不是首记录,则向上移动一位记录指针

endif

thisform.refresh

★"下一个"按钮(command3)的click事件代码:

if!

eof()

skip&&如果当前记录不是最后一条记录,向下移动一位记录指针

endif

thisform.refresh

★"最后一个"按钮(command4)的click事件代码:

gobottom

thisform.refresh

★"退出"按钮(command5)的click事件代码:

tui=messagebox("您确实要退出吗?

",4+64,"提示信息")

iftui=6&&如果此条件为真,说明运行时用户点了消息框中的"是",执行thisform.release释放表单

thisform.release

clearevents

endif

6.保存表单到e:

\myvfp,名为"xggz"

7.运行表单,如图15

十一.例二:

表单调用举例:

建立一个名为diaoyong的程序文件,用程序代码调用例一中建立的xggz.scx表单

1.在命令窗口输入命令:

modifycommanddiaoyong,在弹出的代码窗口中输入如下代码:

setdefaulttoe:

\myvfp

doformxggz

readevents

2.在命令窗口如下命令执行程序:

dodiaoyong

十二.例三:

表单内部控件的事件发生顺序

1.新建一个表单,添加三个命令按钮,如图16

 

2.添加事件代码:

★表单的load事件:

messagebox("form1.load")

★表单的inint事件:

messagebox("form1.init")

★表单的click事件:

messagebox("form1.click")

★表单的destroy事件:

messagebox("form1.destroy")

★command1的init事件:

messagebox("command1.init")

★command2的init事件:

messagebox("command2.init")

★command3的init事件:

messagebox("command3.init")

★commadn1的click事件:

messagebox("command1.click")

3.保存表单文件为li3.scx,目录为e:

\myvfp.运行li3.scx,观察事件发生的先后顺序.

十三.例四:

修改表单li3.scx:

1.在命令窗口依次输入下面两条命令,打开表单li3.scx

setdefaulttoe:

\myvfp

modifyformli3.scx

2.向表单中添加一个文本框text1,为text1编写下列事件代码:

★text1的when事件:

messagebox("text1.when")

★text1的gotfocus事件:

messagebox("text1.gotfocus")

★text1的valid事件:

messagebox("text1.valid")

return.t.

★text1的lostfocus事件:

messagebox("text1.lostfocus")

3.运行表单,单击text1文本框,观察文本框对象事件发生的先后顺序

4.将text1的valid事件的返回值改为.F.(即return.F.),运行表单,单击text1文本框,观察有何不同.

原文链接:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1