第六讲面向对象概念及表单设计_第1页
第六讲面向对象概念及表单设计_第2页
第六讲面向对象概念及表单设计_第3页
第六讲面向对象概念及表单设计_第4页
第六讲面向对象概念及表单设计_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

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

文档简介

@—1

第六章

面向对象概念及表单设计

考试是经教育部批准,由教育部考试中心主办,面向

社会,用于考查应试人员计算机应用知识与技能的全国性计算机

水平考试体系。

讲:杨东风

@—2

目录

一、面向对象的程序设计四、创建和管理表单

二、面向对象的概念五、表单设计器

三、VFP基类简介六、常用表单控件

@—3

6.1面向对象程序设计的基本概念

VisualFoxPro不但支持标准的过程化程

序设计,而且在语言上还进行了扩展,提供了

面向对象程序设计的强大功能和更大的灵活性。

程序设计人员在进行面向对象的程序设计时,

不再是单纯地从代码的第一行一直编到最后一

行,而是考虑如何创建对象,利用对象来简化

程序设计,提供代码的可重用性。对象可以是

应用程序的一个自包含组件,一方面具有私有

的功能,供自己使用;另一方面又提供公用的

功能,供其他用户使用。

厄士士居《

(3)~4

6.1.1对象、控件和类

1.对象(Object)

对象是面向对象程序设计中的基本元素,

是类的一个实例,包括了数据和过程。每一个

对象都有自己的属性、事件和方法。

2.控件(Control)

控件是一种对象,用以显示数据、执行操

作的一种图形对象。

3.类(Class)

类是定义了对象特征以及对象外观和行为

的模板。类包含了有关对象的特征和行为信

息,它是对象的蓝图和框架。

(5)~5

♦类的特征:

封装性:隐藏了类中对象的内部数据或操作细节,

只看到外表信息。

继承性:任何类都可以从其它已有的类中派生,新

类保持了父类中的行为利属性,但增加了新的功能。体

现了面向对象设计方法的共享机制。

多态性:相同的操作可作用于多种类型的对象上,

并获得不同的结果。

抽象性:提取一个类或对象与众不同的特征,而不

对该类或对象的所有信息进行处理。

坛去大奉

(3)—6

VisualFoxPro系统内部定义了一些类,这些类

被称为基类,用户可以直接使用它们,也可以作为

自定义类的基础。

基类又分为容器类利控件类。其中,容器类可

以包含其他对象,并且允许访问这些对象。例如,

表单是一个对象,它可以包含命令按钮、选项按钮、

文本框、标签等多种对象。而控件类不可以包含其

他对象,没有容器类灵活。控件类没有AddObject

方法程序。例如,标签控件是一个对象,在标签控

件中是不可以包含其他对象。

控件类对象作为容器类对象的一个元素,因

此,控件类对象不能单独使用和修改,只能在包含

它的容器类对象中修改或使用。

£父大冬&:

@~7

表6-1VisualFoxPro的基类

基类可

基类名称说明包含对象否

类型

CheckBox复选框控件不包含其他对象是

表头和除表单集、表单、_L具栏、

Column*表格列容器计时器和其他列以外的其余任一是

可靠

ComboBox组合框控件求苞含其他对象是

CommandButton命令按钮控件不包含其他对象是

CommandGroup命令按钮组容器命令按钮是

Container容器容器任意控件是

Control控件容器任意控件是

仕惠控件、贝框、谷器不u日正乂

Custom自定义容器否

时与

EditBox编辑框控件不苞含其他对象是

(5)~8

页框、任意控件、容器或

Form表单容器是

自定义对象

FormSet表单集容器表单、工具栏否

Grid表格容器表格列是

Header表格列标题控件不包含其他对象是

Hyperlink*超级链接控件不包含其他对象否

Image图像控件不包含其他对象是

Label标签控件不包含其他对象是

Line线条控件不包含其他对象是

ListBox列表框控件不包含其他对象是

OLE绑定型控

OLEBoundControl控件不包含其他对象是

OLEContainerContro

OLE容器控件控件不包含其他对象是

1

OptionButton*选项按钮控件不包含其他对象是

妞父大亭(⑤

(5)~9

OptionGroup选项按钮组容器选项按钮是

任意控件、容器和自定义

Page*页面容器是

对象

PageFrame页框容器贝囿否

ProjectHook项目挂钩容器文件、服务程序否

Separator分隔符控件不包含其他对象是

Shape形状控件不包含其他对象是

Spinner微调控件不包含其他对象是

TextBox文本框控件不包含其他对象是

Timer计时器控件不包含其他对象否

ToolBar工具栏容器任意控件、页框和容器是

>@70

利用基类可以派生出新类。通常把从已有

的类派生出的新类称为子类,而将已有的类称

为父类。

类具有继承性,子类可以继承父类的全部

属性和方法。类还具有封装性,可以将对象的

方法程序和属性代码包装在一起。

比要米季(的

@--11

6.1.2属性、事件和方法

任何对象都有属性、事件和方法,应用程

序通过属性、事件和方法来操纵对象。所有对

象的属性、事件和方法程序在定义类时被指定。

1.属性(Property)

属性是指控件、字段或数据库对象的特性。

可以对其进行设置,定义对象的特征或某一方

面的行为。例如,Visible属性影响一个控件

在运行时是否可见。

对象的属性由对象所基于的类决定。

VisualFoxPro中最常见的类属性如表8-4所示。

£父大冬花

@-12

表6・4VisualFoxPro的最常见类属性

属性功能

Alignment指定与控件相关的文本对齐方式

指定表单对象第次显不于VisualFoxPro主囱口时,是否自动居

AutoCenter

中放置

Autosize指定控件是否依据其内容自动调节大小

BackColor指定用于显不对象中文本和图形的背景色

BackStyle指定对象的背景是否透明

BorderColor指定对象的边框颜色

BorderStyle指定对象的边框样式

ButtonCount指定命令按钮组或选项按钮组中的按钮数

Caption指定在对象标题中显示的文本

ColumnCount指定表格、组合框或列表框控件中列对象的数目

ControlSource指定与对象绑定的数据源

辱卉A@--13

।属性_____________功能

Enable指定对象能否响应用户引发的事件

Fontbold>

Fontltalic>

指定文本是否具有下列效果:粗体,斜体,删除线或下划线

FontStrikethru>

FontUnderline

Fontname指定显不文本的字体名

Fontsize指定对象文本的字体大小

ForeColor指定用于显本对象中文本和图形的前景色

Height指定对象在屏幕上的高度

InputMask指定控件中数据的输入格式和显本方式

Interval指定计时器控件的Timer事件之间的时间间隔毫秒数

KeyBoardHighValu

指定可用键盘输入到微调控件文本框中的最大值

e

力@—14

N续表

属性功能

KeyboardLowvalu

Q指定可用键盘输入到微调控件文本框中的最小值.

对厂控件,指xe对家叫左边界(相对厂具乂对家);对丁族甲对

Left象,确定表单的左边界与VisualFoxPro主窗口左边界之间的距

LinkMaster指定表格控件中的子表所链接的父表

maxbutton指定表单是否含有最大化按钮

minbutton指定表单是否有最小化按钮

movable指定用户是否可以在运行时移动一个对象

Name指定在代码中引用对象时所用的名称

决定用户输入的字符或占位符是否显示在文本框控件中,并确

PasswordChar

定用作占位符的字符

力@—15

N续表

属性功能

指定需要在控件中显示的位图文件(.BMP),图标文件(.ICO)或通

Picture

用字段

RecordSource指定与表格控件相绑定的数据源

RowSource指定组合框或列表框控件中值的来源

RowSourceType指定控件中值的来源类型

SpecialEffect指定控件的不同样式选项

Stretch在一个控件内部,指定如何调整一幅图象以适应控件大小

Style指定控件的样式

@—16

属性功能

指定贝囿上控件的Tab键次序,以及表单集中表单对象的Tab键

Tabindex

次序

Tabstop指定用户是否可以使用TAB键把焦点移动到对象上

对于控件,指定相对其父对象最顶端的边缘所在位置;对于表单

Top

对象,确定表单顶端边缘与VisualFoxPro主窗口的距离

Value指定控件的当前状态。对于组合框和列表框控件,此属性只读

Visible指定对象是可见还是隐藏

Width指定对象的宽度

WindowState指定表单窗口在运行时是否可以最大化或最小化

在调整AutoSize属性为真(.T.)的标签控件大小时,指定是否在垂

Wordwrap

直方向或水平方向放大该控件,以容纳Caption属性指定的文本

@--17

2.事件(Event)是面向对象方法中驱动

程序运行的引擎

面向对象与传统的面向过程的程序设计方

法相比,一个很大的差别就是驱动程序模块的

运行机制不同。在面向过程的程序设计中,要

设计一个主控模块来协调并驱动程序各个模块

的运行,而面向对象方法中无需这个主控模

块,各个模块的运行使用事件机制来驱动。

@—18

所以,事件可以看成是有外部实体作用在

对象上的一个动作。用户可以编写相应的代码

对此动作进行响应。事件可以由用户或系统激

活。在多种情况下,事件是通过用户的交互操

作产生的。如单击鼠标或按下一个键;也可以

由程序代码或系统产生,如计时器。

VisualFoxPro的核心事件集如表8・5所

示,这些事件适用于大多数的控件。

@—19

表6-5VisualFoxPro的核心事件集

事件事件触发的动作

Click单击鼠标

DblClick双击鼠标

Destroy释放对象

DragDrop鼠标拖放

GotFocus对象接收到焦点

Init对象创建

InteractiveChange使用键盘或鼠标更改控制的值

KeyPress按下或释放键

LostFocus对象失去焦点

MouseDown当鼠标指针停在一个对象上时,按下鼠标按钮

MouseMove在对象上移动鼠标

MouseUp当鼠标指针停在一个对象上时,释放鼠标按钮

RightClick右击鼠标

妞父大参3)

@—20

3.方法(Method)

方法程序是指对象能够执行的一个操作。例如,

列表框有这样一些方法程序维护它的列表内容:

Addltem>RemoveItem和Clear。

方法程序是与对象相关联的过程,是指对象为完

成某一功能而编写的一段程序代码。一个事件必定具

有一个与之相关联的方法程序。例如,为Click事件编

写的方法程序代码将在Click事件出现时被执行。方法

程序也可以独立于事件而单独存在,此类方法程序必

须在代码中被显式地调用。

VisualFoxPro中常见的方法如表8-6所示。

@-21

表6-6VisualFoxPro的常见方法

方法功能

AddObject运行时,在容器对象中添加对象

CloneObject复制对象,包括对象所有的属性、事件和方法

Help打开“帮助”窗口

Hide通过把Visible属性设置为“假”(.F.),隐藏表单、表单集或工具

Move移动一个对象

NewObject直接从一个.VCX可视类库或程序中将一个新类或对象添加到

一个对象中

Print在表单对象上打印一个字符串

Quit退出VisualFoxPro的一个实例

Refresh重回表单或控件,并刷新所有值,或者刷新一个项目的显不

Release从内存中释放表单集或表单

RemoveObject运行时从容器对象中删除一个指定的对象

SetFocus为一个控制指定焦点

Show显k个表单,并且确定是模式表单还是无模式表集,,女

@-22

4.事件代码与方法代码

事件代码与方法代码都是定义在某个对象中的一

个程序过程,有时把这两者统称为方法代码。但事件

代码可以有时间出发运行,其过程名与事件名相同,

如单击事件代码是在单击事件被触发时运行;而一般

方法程序代码没有与之对应的事件触发,必须依靠其

它程序调用实现。

5.事件触发与停止

事件触发包括用户操作触发与程序运行过程中触

发两种,如当用户单击鼠标时触发CLICK事件。而程序

运行过程中的触发是指程序运行过程中自动触发。

@-23

♦响应对象事件

响应对象事件是指为事件编写程序代码。只有在

事件发生时,才会响应事件执行事件的程序代码。例

如,当用户单击命令按钮时,命令按钮的Click事件

代码将被执行。

用编程方式,可以使用鼠标触发Click、

DblClick>MouseMove^DDragDrop事件,或者在运

行时响应Error事件,或者使用键盘触发KeyPress事

件。除此以外,用户不能用其他的程序设计方法产生

其他事件,但可以调用与这些事件相关的过程。

坛去大奉

@■■24

6.2对象的引用

表单集一表单™页框",页—表格

列-一控件。如引用Gridl对象应按以下格式书

写:

FormSet!.Form!.PageFrame!.Page!.Gridl

仕住/于十,安乂2理一」rNJ豕,而安大U但匕&日刊1丁

容器层次的关系,例如要引用表单集中的控件,则要

按以下格式引用

@■■25

j(2)相对引用:从正在为编写事件代码的对象

出发,通过逐层向高一层或低一层直到另一对象的

引用称为相对引用。

容器层次中的对象相对引用的属性或关键字

属性或关键字引用

Parent当前对象的直接容器对象

This当前对象

ThisForm当前对象所在的表单「

ThisFormSet当前对象所在的表单集

妞上大|(

@—26

this・caption="确定”

如果要行命令按钮commancH的事件代码

中修改命令按钮command2的标题可用下列命

令:

thisform.Cmand2.

caption="取消”

或者this・mand2.caption="取消“

叩幸:

@-27

但不能写成下列命令:

mandl.caption="取消”

如果要在命令按钮commandl的事件代

码中修改表单的标题可用下列命令:

this.Parent.pareiit.Capti(m="测试窗口”

或者thisform.capti(m="测试窗口”

@■■28

一,设置对象属性一一二

对象的属性设置既可以在设计时进行(通

过【属性】窗口),也可以在运行时进行。

设置对象属性的语法如下:

Container.Object.Property=Value

其中,Container为包含当前对象的容器

类,Object为当前对象,Property为当前对象的

属性,Value为当前对象属性的设置值。

@■■29

♦响应对象事件

响应对象事件是指为事件编写程序代码。

只有在事件发生时,才会响应事件执行事件的

程序代码。例如,当用户单击命令按钮时,命

令按钮的Click事件代码将被执行。

用编程方式,可以使用鼠标触发Click、、

DblClick>MouseMove和DragDrop事件,或

者在运行时响应Error事件,成者在用键盘版

发KeyPress事件。除此以外,用户不能用其他

的程序设计方法产生其他事件,但可以调用与

这些事件相关的过程。

【例】为命令按钮commandl编写Click事

件。

坛去大奉

@—30

♦调用对象方法

调用对象方法的语法如下:

Parent.Object.Method

其中,Parent为当前对象的父对象,

Object为当前对象,Method为调用的方法。

【例】调用显示一个表单对象forml的

方法。

@-32

6.3创建与管理表单

表单(Form)是VisualFoxPro提供的用于建

立应用程序界面的最主要的工具之一。表单相

当于Windows应用程序的窗口。

表单可以属于某个项目,也可以游离于任

何项目之外,它是一个特殊的磁盘文件,其扩

展名为.SCXo

在项目管理器中创建的表单自动隶属于该

项目。创建表单一般有两种途径:

①使用表单向导创建简易的表单;

②使用表单设计器创建或修改任何形式的

表单。

创建表单

㈠使用表单向导创建表单的四种途径:

(1)利用“项目管理器”启动表单向导

(2)使用【文件】|【新建】命令启动表

单向导

(3)在系统菜单中选择【工具】|【向导】

I【表单】命令。

(4)直接单击常用工具栏上的“表单向导”

图标按钮。

@■■34

㈡使用表单设计器创建表单

(1)使用【文件】I【新建】命令打开表

单设计器

(2)使用命令方法:在COMMAND窗口输入

如下命令:

CREATEFORMv文件名〉

或MODIFYFORMv文件名〉在项目管

理器中,先选择文档标签,然后选择表单,单

击新建按钮。若是修改表单,选择要修改的表

单,单击“修改”按钮。

@—35

6.4表单设计器

-lalxi£屋性-婚hl

表单控件

AS

□g

口H

B0建

H□

@\

3C

当表单集.,表单颇对象激活时,

蠕显示工具栏对象时发生口

@—36

2.属性窗口

@-37

3.表单控件工具栏表单控

±J®1

设计表单的主要任务就是

利用“表单控件”设计交互式v国

用户界面。“表单控件”工具栏s图

n匾

是表单设计的主要工具。默认oD

巴H

包含21个控件、4个辅助按/0

钮,如图所示:回

篁3(:

.、

@■■38

4.表单设计器工具栏

打开“表单设计器”时,主窗口中会自动出

现“表单设计器”工具栏,如图所示。

5.表单菜单

使用表单菜单中的命令主要用于创建、编

辑表单或表单集,如为表单增加新的属性或方

法等。

@■■39

6.4.2控件操作与布局

1,控件的基本操作

①选定控件

用鼠标单击控件可以选定该控件,被选定

的控件四周出现6个控点。

②移动控件

先选定控件,然后用鼠标将控件拖动到需

要的位置上。也可用方向键对控件进行移动。

③调整控件大小

选定控件,然后拖动控件四周的某个控点

可以改变控件的宽度和高度。也可以按住shift

键的同时,用方向键对控件大小进行微调。

坛去大奉

(3)—40

④复制控件

先选定控件,选择【编辑】I【复制】命

令,然后选择【编辑】I【粘贴】命令,最后将

复制产生的新控件拖动到需要的位置。

⑤删除控件

选定不需要的控件,然后按Delete键或选

择【编辑】I【剪切】命令。

」I£卜@・・41

2.控件布局

利用“布局”工具栏中的按钮,可以方便

地调整表单窗口中被选定的空间的相对大小或

位置。“布局”工具栏可以通过单击表单设计

器工具栏上的“布局工具栏”按钮或选择“显

示”菜单中的“布局工具栏”命令打开或关闭。

“布局”工具栏上的按钮及功能如表所示:

@—42

“布局”工具栏各按钮功能

按钮功能

左边对齐让选定的所有控件沿其中最左边那个控件的左侧对齐

右边对齐让选定的所有控件沿其中最右边那个控件的右侧对齐

顶边对齐让选定的所有控件沿其中最顶端那个控件的顶边对齐

底边对齐让选定的所有控件沿其中最下端那个控件的底边对齐

垂直居中对齐让所有被选控件的中心处在一条垂直轴上

水平居中对齐让所有被选控件的中心处在一条水平轴上

相同宽度调整所有被选控件的宽度,使其与其中最宽控件的宽度相同

相同高度调整所有被选控件的图度,使其与其中最局控件的局度相同

相同大小使所有被选控件具有相同的大小

水平居中使所有被选控件在表单内水平居中

垂直居中使所有被选控件在表单内垂直居中

置前将被选控件移至最前面,可能会把其他控件覆盖住

置后将被选控件移至最后面,可能会把其他控件覆盖住

少力@-43

.设置Tab键次序一

当表单运行时,用户可以按Tab键选择表单

中的控件,使焦点在控件间移动。控件的Tab次

序决定了选择控键的次序。

VisualFoxpro提供了两种方式来设置Tab键

次序:交互方式和列表方式。可以通过下列方法

选择自己要使用的设置方式:

①选择"工具”菜单中的“选项”命令,打开

“选项”对话框。

②选择“表单”选项卡。

③在“Tab键次序”下来列表框中选择“交互”

或“按列表”。

厄丁一学(S)

@—44

★在交互方式下,设置Tab键次序的步骤

如下

①选择“显示”菜单中的“Tab键次序”

命令或单击“表单设计器”工具栏上的“设

置Tab键次序”按钮,进入Tab键次序设置状

态。此时,控件左上方出现深色小方块,称

为Tab键次序盒,里面显示该控件的Tab键次

序号码。

^)—45

②双击某个控件的Tab键次序盒,该控件

将成为Tab键次序中的第一个控件。

③按希望的顺序依次单击其他控件的Tab

键次序盒。

④单击表单空白处,确认设置并退出设置

状态:按Esc键,放弃设置并退出设置状态。

(3)—46

★在列表方式下,设置Tab键次序的步骤如下:

①选择“显示”菜单中的“Tab键次序”命令或单

击“表单设计器”工具栏上的“设置Tab键次序”按

钮,打开“Tab键次序”对话框,列表框中按Tab键次序

显示各控件。

②通过拖动控件左侧的移动按钮移动控件,改变控

件的Tab键次序。

③单击“按行”按钮,将按各控件在表单上的位置

从左到右、从上到下自动设置各控件的Tab键次序;单

击“按列”按钮,将按各控件在表单上的位置从上到下、

从左到右自动设置各控件的Tab键次序。

£——冬

@~47

6.4.3数据环境

属性名含义

AutoOpen当运行或打开表单时,是否打开数据T

Tables环境中的表利视图

AutoClose当运行或打开表单时,是否关闭由数T

Tables据环境指定的表利视图

件。常用的两个数据环境属性是AutoOpenTables和

AutoCloseTables。

@)—48

2.打开数据环境设计器

表单设计器环境下,单击“表单设计器”

工具栏上的“数据环境”按钮,或选择【显示】

I【数据环境】命令,即可打开“数据环境设计

器”窗口,此时,系统菜单栏上将出现“数据环

境”菜单。

@—49

(3)—50

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

在“数据环境设计器”窗口中,选择要移去

的表或视图在系统菜单中选择【数据环境】I

【移去】命令。也可以用鼠标右键单击要移去

的表或视图,然后在弹出的快捷菜单中选择

【移去】命令。

当表从数据环境中移去时,与这个表有关

的所有关系也将随之消失。

@—51

5.在数据环境中设置关系

设置关系的方法为:将主表的某个字段(

作为关联表达式)拖曳到子表的相匹配的索引

标记上既可。如果子表上没有与主表字段相匹

配的索引,也可以将主表字段拖动到子表的某

个字段上,这时应根据系统提示确认创建索引

O要解除表之间的关系,可以先单击选定表示

关系的连线,然后按Delete键。

•>@"52

6.向表单添加字段

利用“表单控件”工具栏可以很方便地

将一个标准控键放置到表单上。但很多情况

下,我们使要通过控件来显示和修改数据。

VisualFoxpro提供了更好的方法,允

许用户从“数据环境设计器”窗口或“数据

设计器”窗口中直接将字段、表或视图拖入

表单,系统将产生相应的控件并与字段向联

系。

@"53

6.5常用表单控件—

表单设计离不开控件,而要很好地使用和

设计控件,则需要了解控键的属性、方法和事

件。

6.5.1常用控件的公共属性

Name:控件的名称,它是代码中访问控件

的标识(表单或变单集除外)。

Fontname:字体名。

Fontbold:字体样式为粗体。

Fontsize:字体大小。

Fontitalic:字体样式为斜体。

(3)—54

Forecolor:前景色。

Height:控件的高度

Width:控件的宽度。控件的高度和控件

的宽度,也可在设计时通过鼠标拖曳进行可视

件调整

Visible:控件是否显示。

Enable:控件运行时是否有效。如果为.T.

,则表示控件有效,否则运行时控件不可使用

@)-55

6.5.2常用控件

一、标签(Label)控件

1.标签控件的功能

标签主要用于显示固定的文本信息。

2.标签控件常用属性

Caption:指定标签的显示文本。可以在设计时

设置,也可以在程序运时设置或修改。

Autosise:autosise如果为真,标签在表单中

的大小由caption属性中的文本长度决定,否则其大小

由WIDTH和HEIGHT属性决定。

Forecolor:设置标题的字体颜色。

£丁一冬(一

(3)—56

Backstyle:设置标签的背景是否透明,0

透明,1不透明,默认为不透明。

Name:标签对象的名称,是程序中访问

标签对象的标识。一

Wordwrap:确定标签上的文本是否可

为多行显示,默认值为假(.F.)。一

Alignment:指定标题文本在控件中显示

的对齐方式。

坛去大奉

@~57

Alignment属性的设置值

设置值说明

0(默认值)左对齐,文本显示在区域的左边

1右对齐,文本显示在区域的右边

2中央对齐,将文本居中排放,使左右两边的空白相等。

【例I】表单中有三个标签,当用鼠标单击任

何一个标签时,都使它两个标签的标题文本互换。

并将表单保存为"命令按钮”,操作步骤:

①创建表单,然后在表单中添加3个标签按钮。

②分别为3个标签控件设置Caption属性。

③分别为3个标签控件设置Click事件代码。

(5)—58

二、命令按钮(CommandButton)控件

1.命令按钮径件功能

命令按钮典型地用来启动某个事件代码、完成特

定功能,如关闭表单、移动记录指针、打印报表等。

用于在表单上生成文本和图形化的按钮,以方便

用户控制应用程序的执行。对命令按钮的使用最重要

的是编写Click事件代码。

2.命令按钮控件常用属性

Default:命令按钮的Default属性默认值为.F.,

如果该属性设置为.T.,在该按钮所在的表单激活的情

况下,按Enter,可以激活该按钮,并执行该按钮的

Click事件代码。一个表单只能有一个按钮的Default

属性为真。

@—59

Cancel:命令按钮的Cancel属性默认值为.F.,

如果设置为.T.又称为“取消”按钮,在该按钮所在的

表单激活的情况下,按Esc键可以激活该按钮,并执

行该按钮的Click事件代码。

一个表单只能有一个按钮的Cancel属性为真。

Caption:设置按钮的标题。

Enabled:指定表单或控件能否响应由用户引发

的事件。默认值为,「,即对象是有效的,能被选

择,能响应用户引发的事件。如果按钮的属性

Enabled为F,单击该按钮不会引发该按钮的单击

事件。只能用来显示只读信息。

坛去大奉

(3)—60

Visible:指定对象是可见的还是隐藏的。在表单

设计器中,默认值是.「,即对象是可见的;在程序

代码中,默认值为.F.,即对象是隐藏的。但一个对

象即使是隐藏的,在代码中仍可以访问它。

当一个表单由活动变为隐藏时,最近活动的表

单或其他对象将成为活动的。当一个表单的Visible

属性由.F.设置成.T,时,表单将成为可见的,但并不

成为活动的。要使一个表单成为活动的,可使用

SHOW方法。

坛去大奉

@—61

【例】创建表单“命令按钮”在表单中创建如图

所示的命令按钮。令组中各按钮的属性设置为(在

属性窗口中设置):

Thisfrom.Commandl.Caption=''首t己录''

Thisfrom.Command2.Caption=''下条记录''

Thisfrom.Command3.Caption=''上条记录''

Thisfrom.Command4.Caption=''末t己录''

Thisfrom.Command5.Caption=''退出''

@—62

if!eof()下条记录

skip

else

waitwindow”已到了最后一个记录!''

endif

Thisform.refresh

@—63

三、命令按钮组控件

1.命令按钮组功能

命令按钮组是包含一组命令按钮的容器控件,用

户可以单个或作为一组来操作其中的按钮。

在表单设计器中,为了选择命令组中的某个按

钮,以便为其单独设置属性、方法和事件,可采用一

下两种方法:一是从属性窗口的对象下拉式组合框中

选择所需的命令按钮;二是用鼠标右键单击命令组,

然后从弹出的快捷菜单中选择“编辑”命令,这样命

令组就进入了编辑状态,用户可以通过鼠标单击来选

择某个具体的命令按钮。

(3)—64

2.命令按钮组常用属性

ButtonCount:命令按钮组中命令按钮的数目。

默认值为2,即包含两个命令按钮。

Value:默认情况下,命令按钮组中的各个按钮

被自动赋予了一个编号,如1,2,3,等,当运行表

单时,一旦用户单击某个按钮,贝Walue将保存该按

钮的编号,于是在程序中通过检测Value的值,就可

以为相应的按钮编写特定的程序代码。

如果在设计时,给Value赋予一个字符型数据,

当运行表单时,一旦用户单击某个按钮,贝Walue将

保存该按钮的Caption属性值。

坛去大奉

(3)—65

Thisform.CommandGroup1.ButtonCount=5

Thisform.CommandGroupI.Buttons(1).Caption=M

首记录\<FM

Thisform.CommandGroupI.Buttons(2).Caption=vv

下条记录\<NM

Thisform.CommandGroupI.Buttons(3).Caption=vv

上条记录\vP”

Thisform.CommandGroupI.Buttons(4).Caption=M

末记录\<Ln

Thisform.CommandGroupI.Buttons(5).Caption=M

退出\vE”

(3)—66

DOCASE

CASEThisform.CommandGroupI.Value=1

gototop

thisform.refresh

CASEThisform.CommandGroupI.Value=2

if!eof()

skip

else

waitwindow”已到了最后一个记录!”

endif

thisform.refresh

CASEThisform.CommandGroupI.Value=3

妞父大参3)

@—67

if!bof()

skip-1

else

waitwindow”已是首记录!”

endif

thisform.refresh

CASEThisform.CommandGroupI.Value=4

gobottom

thisform.refresh

CASEThisform.CommandGroupI.Value=5

Thisform.Release

ENDCASE

97V卡•(3)—68

四、文本框(TextBox)控件

1.文本框控件的功能:

文本框是VisualFoxPro一种常用的控件。

用户利用它可以在内存变、数组元素或非备注

型字段中输入数据或编辑数据。

(1)用于显示或接收单行文本信息(不设

置ControlSource属性),默认输入类型为字

符型,最大长度为256个字符。

(2)用于显示或编辑对应变量或字段的值

(设置ControlSource属性为已有变量或字段

名)。

@)-69

2.文本框控件常用属性

ControlSource:设置文本框的数据来源。

一般情况下,可以利用该属性为文本框指定一

个字段或内存变量。并把在文本框中输入或修

改的结果放在指定的数据源。

Value:保存文本框的当前内容,如果没

有为ControlSource属性指定数据源,可以通过

该属性访问文本框的内容。它的初值决定文本

框中值白勺类型。如果为ControlSource扇性指定

了数据源,该属性相与ControlSource属性指定

的变量或字段的值相同。

@-70

PasswordChar:设置输入口令时显示的字

符。

Readonly:确定文本框是否为只读,为

“・1”时,文框的值不可修改。

@--71

InputMask:指定在一个文本框中如何输

入和显示数据。

InputMask:属性值是一个字符串。该字

符串通常由一些所谓的模式符组成,每个模式

符规定了相应位置上数据的输入和显示行为。

在InputMask属性值中也包含其他字符,这些字

符在文本框内将会原样显示。

娃*去李(初

@-72

模式符功能

X允许输入任何字符

9允许输入数字和正负号

#允许输入数字、空格和正负号

$在固定位置上显不当前货币符号

$$在数值前面相邻的位置上显不当前货币符号

*在数值左边显示星号(*)

■指定小数点的位置

分隔小数点左边的数字串

@--73

【例】创建一个如图所示的登录窗口,并

将表单保存为Myform。

@—74

在确定按钮的单击事件中输入如下代码:

Ifthisform.textl.value=Huserluand

thisform.text2.value=''123456''

doformmainform

form2.release

else

messageboxr密码或用户名错误”,oj提示)

endif

@—75

一在取消按钮的单击事件中输入如下代码:

nAnswer=messagebox(“你决定退出系统吗?”,4,“提示)

DOCASE

CASEnAnswer=6

thisform.release

CASEnAnswer=7

messagebox(“请输入用户名和密码”,o,"提示”)

ENDCASE

@—76

五、编辑框(EditBox)控件

1.编辑框控件的功能

用于显示或编辑多行文本信息。编辑框实

际上是一个完整的简单字处理器,在编辑框中

能够选择、剪切、粘贴以及复制正文,可以实

现自动换行,能够有自己的垂直滚动条,可以

用箭头在正文里面移动光标。

编辑框只能输入、编辑字符型数据,包括

字符型内存变量、数组元素、字段以及备注字

段里的内容。

@--77

2.编辑框常用属性

ControlSource:设置编辑框的数据源,一般为

数据表的备注字段。

Value:保存编辑框中的内容,可以通过该属性

来访问编辑框中的内容。

SelText:返回用户在编辑区内选定的文本,如

果没有选定任何文本,则返回空串。

SelLength:返回用户在文本输入区中所选定字

符的数目。

ScrollBars:指定编辑框是否具有滚动条,当属

性值为0时,编辑框没有滚动条,当属性值为2(默认

值)时,编辑框包含垂直滚动条。

坛去大奉

@—78

AllowTabs:指定编辑框控件中能否使用

Tab键。该属性在设计和运行时均是可用的。

近适用于编辑框。

设置值说明

.T.编辑框里允许使用Tab键

按Ctrl+Tab时焦点移出编辑框

.F.编辑框里不能使用Tab键

按Tab时焦点移出编辑框

SelStart:返回用户在编辑框中所选文本

的起始点位置或插入点位置。也可用以指定要

选文本的起始位置或插入点位置。

@—79

HideSelection:指定当编辑框失去焦点

时,编辑框中选定的文本是否仍显示为选定状

O

设置值说明

(默认值)失去焦点时,编辑框中选定的文本不显示为选定状态。

当编辑框再次获得焦点时,选定文本重新显示为选定状态。

失去焦点时,编辑框中选定的文本仍显示为选定状态。

Readonly:指定用户能否编辑编辑框中

的内容。设置值说明

.T.不能编辑编辑框中的内容

.F.(默认值)能够编辑编辑框中的内容

(3)—80

操作步骤:

①创建表单,然后在表单上添加一个编辑

框和两个命令按钮。

②检查编辑框控件的Name属性值是否与

题目中所说的名称一致。如果不一致,应该进行

设置。

③设置编辑框的HideSelection属性值。

④分别设置两个命令按钮Caption属性值。

⑤分别为两个命令按钮设置Click事件代码。

见P220页

@—81

六、复选框(CheckBox)控件

1.复选框的功能

用于标识一个两值状态,如真(.七)或假当

处于“真”状态时,复选框内显示一个对勾,当处于“假”

状态时复选框内为空白。

2.复选框常用属性

Caption:用来指定显示在复选框旁边的文字。

属性值|说明

0或E(默认值),未被选中

1或被选中

>=2或null不确定,只在代码中有效

坛去大奉

@■■82

ControlSource:用于指定与复选框建立

联系的数据源。在表单运行阶段,用于显示

数据源的当前值,且能将用户的选择或修改

保存在指定的数据源中。作为数据源的字段

变量或内存变量,其类型可以使逻辑型或数

值型。

Value:用来指明复选框的当前状态。

@—83

【例】创建如图所示表单,表单文件名为myfonn

—■na^M

1.1..1LJ.1...;

II

1..…..…r系名..…..…G按职工号升序[…

「报职_L号降序.「…

1……-……:工资,■,*……•……

1…:………………

1…:

温馨提示

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

评论

0/150

提交评论