第六章 表单.docx

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

第六章 表单.docx

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

第六章 表单.docx

第六章表单

第6章表单

本章进入应用程序的综合设计阶段

表单是VFP创建应用程序与应用程序界面的重要途径之一,它将可视化操作与面向对象的程序设计思想结合在一起。

表单设计器是设计表单的工具,它提供了设计应用程序界面的各种控件,相应的属性,事件。

它运用了面向对象的程序设计思想和事件驱动机制。

表单(form):

传递(承载)数据信息的载体,是一个窗口界面。

注意区别from短语。

6.1面向对象的概念

面向对象的程序设计思想是将事物的共性,本质内容抽象出来封装成类。

VFP又将软件开发常用的功能抽象封装成标准类,开发者用类定义所需对象,通过对对象的属性设置,对事件的编程完成程序设计

如何理解面向对象的思想?

只要知道怎样去用就可以,不必知道具体的实现细节。

6.1.1对象与类

1.对象(object)

世间万物皆对象

对象是客观世界中的一个实体。

对象可以是具体的,也可以是抽象的

对象具有属性和方法,对象的属性描述了对象的状态(静态特征),对象的方法描述了对象的行为。

例:

一个学生就是一个对象,描述他的属性有学号,姓名等;他的方法是参加考试。

一个手机就是一个对象,描述它的属性有颜色等;它的方法是能发短信。

注意:

同一个方法,由不同的对象去执行,一般会产生不同的结果。

2.类(class)

具有相同属性和方法的对象称为类

一个学生是一个对象,多个学生就构成了学生类。

把基于某个类生成的对象称为这个类的实例。

对象和类的关系:

对象具有特殊性,类具有一般性.对象是类的一个具体实例,是客观存在的具体事物,只有通过类才能创建对象。

基于同一个类创建的不同对象,可以分别设置自己的属性和方法。

VFP标准类中有表单类,控件类等。

具体的一个表单就是表单对象。

6.1.2子类与继承

继承是指基于现有的类创建新类时,新类沿用了现有类的方法和属性。

把现有类称为父类,把新类称为现有类的子类

继承可以使在一个父类所作的改动自动反映到它的所有子类上。

父类有的子类一定都有,子类有的父类不一定有。

(青出于蓝胜于蓝)

6.2VisualFoxPro基类简介

6.2.1VisualFoxPro基类

如何理解基类?

基类就是祖类,注意区别父类,子类。

VF基类是系统本身内含的、并不存放在某个类库中,用户可以基于基类生成所需对象,也可以扩展基类创建自己的类。

每个VF基类都有自己的一组属性、方法和事件。

编程中用户创建对象的函数:

CEATEOBJECT(类名)

设置对象属性的语法格式:

objectName.Property=Value

调用对象方法的语法格式:

objectName.Method

例子:

MyForm=CEATEOBJECT(“Form”)&&创建表单对象

MyForm.Caption=”我的表单”&&设置表单标题

MyForm.show&&显示表单

说明:

show是表单的一个方法,用于显示一个表单。

课本第174页表6.1VisualFoxPro基类

重点记住CommandButton命令按钮

Form表单

Grid表格

CheckBox复选框

Label标签

OptionButton选项按钮

OptionGroup选项按钮组

TextBox文本框

6.2.2容器与控件

VF中的类一般分:

容器类和控件类

容器对象的类称为容器类,根据容器类可以生成容器对象

控件对象的类称为控件类,依据控件类可以生成控件对象

控件:

一个以图形化的方式显示出来并能与用户进行交互的对象。

命令按钮和文本框都是控件

容器:

一种能够容纳其他控件或容器的特殊控件。

表单是一个最大的容器,表格也是容器。

在表单中有包含与被包含关系的对象,能包含其他对象的对象成为容器对象在VFP中常用的容器类如表6.3所示。

表6.3常用的容器类及其可以包含的对象

容器

包含的对象

表单集

表单,工具栏

表单

任意控件,页框,Container对象,命令按钮组,选项按钮组,表格等对象

表格

除表单集,表单,工具栏,定时器及其他列之外的任意对象

页框

任意控件以及Container对象,命令组,选项组,表格等对象

命令按钮组

命令按钮

选项按钮组

选项按钮

Container对象

任意控件及页框,命令组,选项组,表格等对象

明确两个概念:

对象的层次:

指包容与被包容的关系

类的层次:

指继承与被继承的关系

在对像的嵌套层次关系中,要引用其中的某个对象,需要指明对象在嵌套层次中的位置。

对象的引用规则(相当重要,理解着记住!

(1)引用形式

对象对属性、事件、方法的引用是用点“.”运算符。

形式:

对象.属性|方法|事件

说明:

对象若有包含与被包含关系,可以从外层开始,引用到内层对象。

如在后面要介绍的命令按钮Command1,对它的Caption属性的引用可以写成:

ThisForm.Command1.Caption=“确定”,这个意思是设置当前表单中的Command1按钮的Caption属性为确定。

ThisForm代表当前表单。

(2)对象在引用中常使用的关键字

下面三个关键字只能使用在方法代码或事件代码中

表6.4对象在引用中常使用的关键字

属性或关键字

含义

例子

Parent(属性)

This(关键字)

当前对象

This.Caption

ThisForm(关键字)

当前表单

ThisForm.Caption

ThisFormSet

(关键字)

当前表单集

ThisFormSet.Fmand1.Caption

属性:

parent表示当前对象的直接容器对象

假设一个表单里有一个文本框TEXT1和一个命令按钮组COMMANDGROUP1,命令按钮组中包含COMMAND1和COMMAND2两个命令按钮。

如果要在COMMAND1命令按钮的某个方法中访问文本框的VALUE属性值,下列式子中,正确的是____A___

A)Thisform.text1.valueB)Thisform.Parent.Value

c)Parent.Text1.ValueD)This.Parent.Text1.Value

6.2.3事件

事件是一种由系统预先定义而由用户或系统发出的动作。

(一触即发)

事件作用于对象,对象识别事件并作出相应的反应。

用户通过触发对象事件(例如单击或双击命令按钮)调用对象方法或执行用户程序代码。

事件集是VF固有的,用户不能创建新的事件。

而方法程序集合是可以无限扩展的。

VF基类的最小事件集

事件

说明

Init

当对象生成时引发

Destroy

当对象从内存中释放时引发

Error

当方法或事件代码出现运行错误时引发

 

事件代码既能在事件引发时执行,也可象方法一样被显式调用。

为对象编写与事件相关联的方法程序时,注意以下规则:

1.容器对象不处理与所包含的控件对象相关联的事件(独立性原则)。

2.若没有与某控件事件相关联的方法,VF在该控件所在类的层次结构中逐层向上检查是否有与此事件相关联的方法代码。

3.以上规则对选项按钮组和命令按钮组例外。

在容器对象的嵌套层次中,事件的处理遵循独立性原则,每个对象识别并处理属于自己的事件(各司其职)。

例如,当用户单击表单中的一个命令按钮时,将引发命令按钮的click事件,而不会引发表单的click事件。

如果没有指定命令按钮的click事件代码,那么该事件将不会有任何反应。

例子:

一个选项按钮组包含两个选项按钮Option1和Option2,其中按钮组和按钮Option1都有Click事件代码,而按钮Option2没有指定Click事件代码.那么当用户单击按钮Option1时,将引发按钮Option1的Click事件,执行相应的事件代码.此时不会引发按钮组的Click事件.如果单击按钮Option2,由规则2可知它会引发按钮组的Click事件,执行按钮组中的相应事件代码.

例子:

新建一个表单,在表单中添加一个选项按钮组optiongroup1

双击选项按钮组编写optiongroup1的Click事件代码:

thisform.caption=”这是optiongroup1的Click事件代码”

点击右键选“编辑”->双击option1写Click事件代码:

thisform.caption="这是OPTION1的事件"

运行表单,点击option2时会触发optiongroup1的事件代码。

6.3创建与运行表单

表单是一种文件类型,表单文件的扩展名是.SCX,表单备注文件的扩展名是.SCT

6.3.1创建表单

1.使用表单设计器创建表单

(1)在项目管理器中创建

“文档”->”表单”- >”新建”->”新建表单”

(2)使用菜单创建

“文件”->“新建”->“表单”->”新建文件”

(3)命令方式

Createform表单名

在表单设计器环境下调用表单生成器快速创建表单

“表单”->“快速表单”

2.用表单向导创建表单

表单向导是通过人机交互方式,完成对表进行浏览,编辑等基本操作界面的自动生成。

表单向导可以完成为单表建立表单,称单表表单,为多表建立表单称多表表单。

表单向导(单表表单)

步骤1字段选取->步骤2选取表单样式->步骤3排序次序->步骤4完成

一对多表单向导(多表表单)

步骤1从父表中选定字段->步骤2从子表中选定字段->步骤3建立表之间的关系->步骤4选择表单样式->步骤5排序次序->步骤6完成

3.修改已有表单

(1)打开表单设计器

文件→打开,或常用工具栏打开按钮,打开打开对话框→在文件类型中选表单→在文件列表中选要修改的表单→确定

(2)对表单进行修改

1)对表单中已有控件对象修改。

2)如果在表单中创建新的控件对象,可在表单控件工具栏中选中控件放到表单中,然后对该对象进行属性设置和代码编辑。

3)若要删除表单中的控件,选中该控件按Del键。

6.3.2运行表单

5种方法:

(1)在项目管理器中选要运行的表单,单击“运行”

(2)打开一个表单,单击常用工具栏中的运行按钮(叹号)(常用方法)

(3)表单→执行表单

(4)”程序”菜单->”运行”

(5)用命令执行表单

格式:

DOFORM<表单名>

功能:

执行由表单名指定的表单。

说明:

name子句,系统建立指定名字的变量

Linked子句,表单对象随指向它的变量的清除而关闭(释放)

6.4表单设计器

用表单向导设计表单,固然简单方便又不需要编写代码,但表单向导设计出的表单是有一定的固定模式,功能也有限。

如果想设计无固定模式,多功能的表单,表单向导是无法实现的。

VFP提供了表单设计器.

6.4.1表单设计器环境

在表单设计器中有FORM表单,表单设计器工具栏,如图所示,若表单设计器工具栏被隐藏,可通过如下步骤打开:

显示→工具栏,打开工具栏对话框→选择表单设计器→确定。

1.表单设计器窗口

(1)用界面的方式打开

文件→新建或常用工具栏中的新建按钮,打开新建对话框→在文件类型中选表单→新建文件按钮,打开表单设计器。

(2)用命令方式打开

格式:

MODIFYFORM[<表单名>|?

]

功能:

打开表单设计器,创建或修改由表单名指定的表单。

2.属性窗口

属性窗口用于对各对象设置属性。

属性窗口中,对象下拉列表用来显示当前对象。

全局选项卡是列出全部选项的属性和方法,数据选项卡是列出显示或操作的数据属性,方法选项卡显示方法和事件,布局选项卡显示所有布局的属性,其他选项卡显示自定义属性和其他特殊属性。

注意:

打开属性窗口时默认选择全部选项卡,不要点选任何选项卡.

如果属性窗口隐藏了可以通过如下方法打开:

“显示”->”属性”

或直接点击属性按钮

特别说明:

1.属性窗口中的属性是按照字母排序的

2.要注意区别name(控件名),caption(标题名称)

3.要为属性设置一个字符型值可以在设置框中直接输入,不要加定界符,否则系统会把定界符作为字符串的一部分。

4.要为属性赋值,可以在设置框中先输入等号再输入表达式。

5.要把一个属性设置为默认值,可以在属性列表框中右键单击该属性,从快捷菜单中选“重置为默认值”

3.表单控件工具栏

表单控件工具栏提供了21个控件和选定对象,查看类,生成器锁定,按钮锁定等几个图形按钮。

如图所示。

在设计表单中用控件设计图形界面。

若想知道某一个控件的名称,只需要把鼠标放到这个控件上停留就可以。

表单控件工具栏被隐藏了可以通过如下方法打开:

显示->工具栏->表单控件

或者点选那个锤头和扳手图标的按钮

例:

设计一个表单。

表单运行时标签上显示“点我有惊喜”当单击表单上的文字时文字变为“呵呵,你上当了!

!

双击试试看。

”,再双击文字变为“你还真双击啊,知道猪是怎么死的吗?

…”。

单击退出释放表单。

步骤:

1)打开表单设计器

2)打开表单工具栏,属性窗口

3)在表单上添加一个标签控件和一个命令按钮控件

4)将当前对象选为Label1,将它Caption属性设置为“点我有惊喜”

5)将当前对象选为Command1,将它的Caption属性设置为“退出”

6)双击Label1控件,打开代码窗口。

将当前对象选为Label1,过程中选Click事件,在代码编辑窗口中输入Thisform.label1.Caption=“呵呵,你上当了!

双击试试看。

”。

7)过程中选DblClick事件,在代码编辑窗口中输入Thisform.label1.Caption=“你还真双击啊,知道猪是怎么死的吗?

…”

8)将当前对象选为Command1,过程中选Click事件,在代码编辑窗口中输入ThisForm.release

9)关闭代码窗口

10)保存

文件→保存,或常用工具栏保存按钮,打开另存为对话框→输入表单名→保存

11)执行表单

单击常用工具栏的运行按钮(叹号!

6.4.2控件的操作与布局

1.控件操作

(1)在表单中放置控件

打开表单设计器和表单控件工具栏,单击表单控件工具栏中的所需控件如命令按钮,然后在表单适当的位置调整成适当的大小。

(2)控件在表单中的复制与粘贴

选表单中已存的控件,如Command1→右键打开快捷菜单→选择复制→在表单适当的位置打开快捷菜单选择粘贴。

若位置不理想,可以通过拖拽的方式移动控件。

(3)调整大小

选需要调整大小的控件如Command1,可用拖拽控件四周的8个黑色方块来调整大小。

也可以通过属性设置来调整控件的大小。

控件的宽度属性为Width,高度属性为Heiht。

(4)删除控件

选中要删除的控件→Del键。

2.控件的布局

打开布局工具栏,如图所示。

要使用布局工具栏中的按钮的功能,先要对表单进行多重选定。

布局工具栏

多重选定就是同时选中两个以上的控件,选择方法为先按住shift键,再用鼠标单击选择的控件或用鼠标拖拽的方法将所要选的控件选中。

3.设置Tab键次序(重要记住!

(1)点击“显示”菜单->”TAB键次序”

(2)双击某控件的Tab键次序盒,该控件成为第一个控件

(3)按希望的顺序依次单击其他控件的TAB键次序盒

(4)单击表单空白处,确认设置。

还有一种方法:

分别设置每一个控件的TABINDEX属性,按需要的顺序在里面填上数值就可。

6.4.3数据环境

为表单建立数据环境,可以设置控件与数据之间的绑定关系。

它包含表单所需的表,视图及表之间的关联。

数据环境要在表单打开的情况下使用,当表单关闭或释放时它就关闭。

1.打开数据环境设计器

有三种方法:

(1)显示→数据环境

(2)单击表单设计器工具栏中的数据环境按钮

(3)在表单设计器中的空白处按右键,打开快捷菜单→数据环境。

如图6.23所示。

数据环境设计器

2.向数据环境设计器中添加表或视图

数据环境→添加,或在数据环境设计器的空白处按右键→添加,打开添加表或视图对话框如图所示→其他,打开打开对话框,选表→确定→在数据库和表列表中选表→添加。

3.数据环境中关系的设置

若添加的多个表之间已建立过关系,那么在数据环境设计器中还保持且显示这些关系。

若表之间没有关系可建立关系,方法是将表设计器打开先对主表和子表建立相应的索引,用前面讲过的方法,将主表的主关键字段或侯选关键字段拖到子表相应子段上即可。

删除关系即选定关系连线按Del键。

4.从数据环境设计器中移去表或视图

选要移去的表或视图→数据环境,或单击右键打开快捷菜单→移去。

5.向表单中添加字段

若将整个表的字段添加到表单中,可在数据环境设计器中拖住要添加表,将其放置到表单的适当位置。

若要将某个字段放到表单中,则要在数据环境中选中此表对应的字段名放到表单的适当位置。

数据环境的作用主要就是向表单中添加字段。

6.5表单属性和方法

注意:

表单文件名(保存时取名),表单名(name属性),表单标题名称(caption属性)这三个名称

6.5.1常用表单属性

属性

用途

默认值

Autocenter

初始化时,是否让表单自动在VFP窗口中居中

.F.

AlwayOnTop

表单是否总是处于其他窗口之上

.F.

BackColor

决定表单窗口的颜色

255,255,255

BorderStyle

指定表单边框风格,0—无边框,1—单线框,3—系统(可调)

3

Caption

指定表单显示的标题文本

Form1

Closable

是否可以通过单击关闭按钮或双击控制菜单框来关闭表单

.T.

MaxButton

表单是否有最大化按钮

.T.

MinButton

表单是否有最小化按钮

.T.

Movable

表单是否能移动

.T.

Name

指定表单名

Form1

Scrollbar

指定滚动条类型0-无,1-水平,2-垂直,3-水平垂直

0

WindowState

表单状态0-正常,1-最小化,2—最大化

0

WindowType

*指定表单是模式表单(设置为1),或非模式表单(设置为0)。

0

6.5.2常用的事件与方法

1.事件

事件是描述对象的动态行为,它是由系统预先定义好的,由用户或系统发出的动作,用对象来识别,用户可编程对此进行响应。

表单常用事件

事件

触发

事件

触发

Load

创建对象前

RightClick

用右键单击对象时

Init

创建对象时

KeyPress

按下并释放键盘时

Activate

对象激活时

LostFocus

对象失去焦点时

GetFocus

对象获得焦点时

Unload

释放表单对象时最后一个事件

Click

用左键单击对象时

Destry

释放对象时在Unload前触发

Dblclick

用左键双击对象时

Error

对象方法或文件代码产生错误时

MouseUp

释放鼠标键时

Resize

调整对象大小时

MouseDown

按鼠标键时

MouseMove

在对象上移动鼠标时

如果需要通过某个事件完成某种功能,就可以在文件中编制程序。

(1)运行时事件

Load:

运行表单时引发

Init:

对象建立时引发

(2)关闭时事件

Destroy:

对象释放时引发

Unload:

表单对象释放时引发

事件引发的先后顺序:

load>init>destroy>unload

(3)交互时事件

Gotfocus:

对象获得焦点时引发

Click:

鼠标单击时引发

Dbclick:

鼠标双击时引发

Rightclick:

鼠标右击时引发

InteractiveChange:

通过鼠标或键盘交互式改变控件值时引发

(4)错误时事件

Error:

运行过程产生错误时引发

2.方法

方法是与对象相关的过程,是对象能执行的操作。

方法分为两种一种为内部方法,另一种为用户自定义方法。

内部方法是VFP预先定义好的方法,供用户使用或修改后使用。

表单常用的方法:

(1)表单的显示、隐藏、关闭方法

Show:

表单的显示方法

Hide:

表单的隐藏方法

Release:

表单释放(关闭)方法

(2)表单或控件的刷新方法

Refresh:

重新绘制表单或控件,刷新它的所有值

(3)控件焦点设置方法

SetFocus:

控件获得焦点使其成为活动对象。

特别说明:

以后编程只要写退出或关闭释放表单都用下面的方法

退出(关闭)表单的方法:

thisform.release

关于click事件:

Click事件是我们以后上机经常写的事件,能写click事件的常见控件有复选框,命令按钮,组合框,列表框,选项按钮组等,写click事件时只要双击相应的控件就可以在程序编辑框中书写,写完后直接关闭窗口就可以了不用保存。

当表单中包含一个默认按钮(default属性为.T.)时,按ENTER键引发默认按钮的click事件。

6.5.3添加新的属性和方法

注意:

只有表单可以添加新的属性和方法,用户添加了属性和方法以后就可以在表单对象中引用它。

1.创建新属性(了解一下)

2.创建新方法

(1)“表单”->”新建方法程序”

(2)在“名称”框中输入方法名

(3)这时在“属性”窗口的最底部有了那个方法名,注意要关闭那个输入框。

(4)双击那个名称就可以输入方法代码了。

例子:

为表单新建一个方法程序test,代码为:

thisform.release

为表单添加一个按钮OK,其功能是调用test方法。

6.6基本型控件

控件:

基本型控件和容器型控件

基本型控件是指不能包含其他控件的控件。

如:

标签,文本框,列表框

6.6.1标签控件(Label)

标签控件属于输出类控件,用于显示文本,被显示的文本在caption属性中指定。

它常用属性如表所示。

标签常用属性

属性

用途

默认值

Caption

标题,用于显示文本

Label

Alignment

指定标题文本在控件中显示的对齐方式0左对齐,1右对齐,2中央对齐

0

ForeColor

设置标题文本颜色,0,0,0为黑色,255,255,255为白色

0,0,0

FontName

设标题文本字体类型

宋体

FontSize

标题文本字体大小

9

关于标签的说明:

1.标签控件不具有GotFocus事件,虽可以设置Tab键次序,但是会把焦点传给下一控件。

2.设置访问键(ALT+字母):

在控件的caption属性中,把光标定位到某字符左边插入(\<)

6.6.2命令按钮(CommandButton)

命令按钮用来触发事件,完成特定的功能,在click事件中写代码。

常用属性如表所示。

命令按钮的常用属性

属性

用途

默认值

Caption

标题

Command1

Enabled

按钮是否有效,.T.有效,.F.无效

.T.

Default

是否为默认按钮,.T.是,.F.不是

.F.

Cancel

是否取消按钮,.T.是,.F.不是

.F.

Visible

按钮是否可见,.T.可见,.F.不可见

.T.

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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