当前位置:文档之家› 第7章表单设计及应用

第7章表单设计及应用

第7章表单设计及应用
第7章表单设计及应用

第7章表单设计及应用

在VFP中,将Windows操作系统中的窗口称为表单(Form)。表单在面向对象程序设计中得到了广泛应用,且起到了非常重要的作用。本章将介绍在VFP中如何创建表单、使用表单,以及面向对象程序设计中相关的基础知识。

7.1 表单样例

表单是用户与应用程序之间进行交互的主要界面,如,在“学生信息窗口”表单(如图7.1)中可以通过操作表单中的控件对象对学生信息进行显示和修改等操作。

图7.1 学生信息窗口

在样例中,通过在表单上添加标签、文本框、选项按钮组、组合框和命令按钮组等控件,并设置其相关属性,使操作界面更加友好。同时,通过在相关事件中编写代码而完成一些操作功能,例如,在“下一条”按钮的“Click”事件中编写代码,当运行表单时单击该按钮,能够在表单中显示下一个学生的信息。

通过上述样例,不难看出表单是面向对象程序设计的基础,如何创建表单则是首要解决的问题。VFP提供了两种表单设计工具,即:表单向导和表单设计器。

7.2 表单向导

VFP提供了20余种向导工具,其作用是引导用户通过简单地操作产生程序,从而减少了编写代码的过程,“表单向导”便是其中之一。

利用“表单向导”制作表单时,并不需要对表单有太多了解,只需逐步回答向导中所提出的一系列问题,最终,“表单向导”会根据相应要求自动产生一个表单。

启动“表单向导”的常用方法有2种:

方法一:“工具”菜单→“向导”→“表单”→“向导选取”对话框(如图7.2)。

方法二:“文件”菜单→“新建”→选定文件类型为“表单”→“向导”按钮→进入“向导选取”对话框。

图7.2 “向导选取”对话框

在“向导选取”对话框中(如图7.2),有“表单向导”和“一对多表单向导”两个选项,即,利用向导可以生成两类表单:“表单向导”可以生成只包含单个表的表单;“一对多表单向导”可以生成基于一对多关系的两个表的表单。

【例 7.1 】使用表单向导创建只包含学生表(XSB)的表单。

(1)启动“向导选取”对话框:“文件”菜单→“新建”→选择“文件类型”为“表单”→“向导”→选择“表单向导”→“确定”按钮,进入表单向导对话框(如图7.3)。

(2)步骤1-字段选取:单击“数据库和表”的浏览按钮→选择XSB表→将相关字段(如学号、姓名和性别码)从“可用字段”移动到“选定字段”→“下一步”按钮。

(3)步骤2-选择表单样式:为表单选择一种“样式”(如:标准式)和“按钮类型”(如:文本按钮)→“下一步”按钮。

(4)步骤3-排序次序:设置数据记录在表单中的显示顺序。在“可用的字段或索引标识”列表框中,选择排序字段,如:选定学号字段,“添加”到“选定字段”列表框中→“下一步”按钮。

图7.3 表单向导的字段选取

(5)步骤4-完成:在“请键入表单标题”框中输入:学生信息,然后选择一种保存表单方式。在此步骤中,在单击“完成”按钮前,可以单击“预览”按钮,预览形成的表单样式及其内容,若要修改表单,可依次点击“上一步”按钮回溯到前面的操作。

利用表单向导,系统能够根据需要在表单上自动生成一组控件,并省去了编写代码的麻烦。这种产生表单的方法简单、方便、快捷,但它所产生的表单模式固定,若想随意设计或修改表单,利用表单设计器会更灵活一些。

7.3 表单设计器

表单设计器用于创建和修改表单,向表单中添加各类控件(如文本框和命令按钮等),设置表单及其他控件的属性,编写各类事件的代码等。

7.3.1 新建表单文件

新建表单文件,即产生新的表单,可以使用如下3种方法实现:

方法一:“文件”菜单→“新建”→选定文件类型为“表单”→“新建文件”按钮。

方法二:单击常用工具栏上的“新建”工具→选定文件类型为“表单”→“新建文件”按钮。

方法三::在程序或命令窗口中通过命令建立表单。

命令格式:Create Form [<表单文件名>]。

命令说明:命令中可以只写表单文件主名,不指定其扩展名,系统默认表单文件的扩展名为SCX ;若命令中省略<表单文件名>,则直接进入表单设计器,待保存文件时再为表单文件命名。

【 例 7.2 】利用命令,创建Frm7_2.SCX 表单。在命令窗口中输入下列命令:

Create Form Frm7_2 && 文件名前未指定盘符及路径,文件将被保存在默认目录中。

7.3.2 表单设计器的基本组成

无论利用哪一种方法建立表单文件,都会进入表单设计器,在表单设计器中可以对表单进行设计与修改。表单设计器的基本组成如图7.4。

图7.4 表单设计器的基本组成

(1)表单设计器窗口:此窗口内包含正在设计的表单(如Form1),在表单上可以进行添加对象及编写事件代码等操作。

(2)表单控件工具栏:利用表单控件工具栏提供的常用控件,可以向表单中添加所需要的对象(如文本框、命令按钮等)。

(3)属性窗口:用于设置表单及其所包含对象的属性。

表单设计器窗口 属性窗口 表单控件工具栏

7.3.3 保存表单

建立表单之后,可以将设计结果保存起来,系统在磁盘上将产生两个文件:扩展名为SCX的表单文件和扩展名为SCT的表单备注文件。常用保存表单的方法如下:方法一:“文件”菜单→“保存”(或“另存为”)命令。

方法二:单击表单设计器窗口的“关闭”按钮,当询问是否要保存时,选择“是”即可保存。对于新建表单使用此方法时,若对表单没做任何改动,则仅关闭表单设计器窗口,系统不会保存表单。

方法三:按Ctrl+W组合键。

使用上述方法保存未命名的表单时,系统将弹出“另存为”对话框,并要求用户为表单命名。

7.3.4 打开已有表单文件

打开已有的表单文件,进入表单设计器,随后可以对表单进行修改操作。打开表单文件的常用方法有3种:

方法一:“文件”菜单→“打开”→在“打开”对话框中,选择“文件类型”为“表单(*.scx)”→选定要打开的表单文件→“确定”。

方法二:单击常用工具栏上的“打开”按钮→在“打开”对话框中,选择“文件类型”为“表单(*.scx)”→选择要打开的表单文件→“确定”。

方法三::在程序或命令窗口中通过命令修改表单。

命令格式:Modify Form [<表单文件名>]

命令说明:如果不指定表单文件名,则其操作方法与前两种方法类似。如果指定表单文件名,则直接进入表单设计器。

【例 7.3 】利用命令打开已有表单文件Frm7_2.SCX。在命令窗口中输入下列命令:Modify Form Frm7_2

7.3.5 运行表单

一个表单在设计过程中或设计完成时,需要随时被运行,以便观察表单的整体效果,检测表单上各控件相应功能的正确性。表单无论处于打开状态,还是未打开状态下,均可以被运行,方法如下:

1. 表单处于打开状态时

方法一:右击表单→“执行表单”命令。

方法二:“表单”菜单→“执行表单”命令。

方法三:单击常用工具栏上的“运行”按钮。

方法四:按Ctrl+E组合键。

2. 表单处于未打开状态时

方法一:“程序”菜单→“运行”→在“运行”对话框中选择“文件类型”为“表单”→选定表单文件名→“运行”按钮。

方法二:在程序或命令窗口中通过命令运行表单。

命令格式:Do Form<表单文件名> [ Name <表单引用名> ]

命令说明:表单文件名中可以省略扩展名SCX。可选项Name <表单引用名>的作用是:在打开表单的同时为表单指定引用名,以便使此表单在其他位置可以更方便地被引用,表单引用名的命名规则和作用域与内存变量相同。

方法三:按Ctrl+D键→选择“文件类型”为“表单”→选定表单文件名→“运行”按钮。

【例 7.4 】在命令窗口中运行表单Frm7_2,并为其指定引用名为TEST。

Do Form Frm7_2 Name TEST

7.3.6 快速创建表单

在表单设计器中,同样也可以简单、快速地为某个数据表中的字段变量产生相应的控件对象,即快速创建表单。这种方法主要是利用“表单生成器”来完成的,打开表单生成器的方法主要有2种方法:

方法一:“表单”菜单→“快速表单”→进入“表单生成器”对话框(如图7.5)。

方法二:表单的快捷菜单→“生成器”→进入“表单生成器”对话框(如图7.5)。

图7.5 表单生成器

其余操作方法与表单向导类似。生成的结果也是将字段名作为标签控件,字段值作为文本框控件加到表单中,但不会自动生成命令按钮。

【 例 7.5 】利用快速表单创建包含成绩表(CJB )字段的表单Frm7_5.SCX 。

(1)新建表单文件Frm7_5.SCX ,并使其处于打开状态。

(2)在表单设计器中,右击鼠标→“生成器”命令→“表单生成器”对话框→选择“字段选取”选项卡

(3)单击“数据库和表”右侧的浏览按钮,在“打开”对话框中选择CJB 表文件,若此数据表属于数据库XSXX ,则该数据库中包含的所有数据表名均出现在左侧的列表框中(如图7.5);否则只有CJB 数据表作为自由表出现在列表框中。

(4)选定数据表“CJB ”,在“可用字段”中选定字段名,单击“添加”按钮或双击字段名,使其添加到“选定字段”中,最后单击“确定”按钮。

(5)根据选定的字段,表单中自动出现一些控件(字段名以标签方式、字段内容以文本框方式出现)。运行表单时,控件中显示成绩表中第一条记录相关字段的值。

7.4 表单上控件的设置

利用表单向导和快速表单生成表单后,VFP 系统都将在表单中产生一些控件对象,这种设置控件的方法虽然简单、快捷,但缺少灵活性。若希望在设计表单时,在表单上随意地添加控件,可以使用表单控件工具栏(如图7.6)。

图7.6 表单控件工具栏 ActiveX 控件(OleControl )—

选定对象

标签

编辑框

命令按钮组

复选框

表格

线条

容器

超级链接

生成器锁定

计时器

列表框

组合框 命令按钮 微调控件 按钮锁定

选项按钮组 图象 页框 形状 分隔符 —ActiveX 绑定控件(OleBoundControl )

表单控件工具栏是一个浮动的窗口,可以通过拖曳其标题栏,将它移至不同位置,根据需要也可以使表单控件工具栏隐藏或显示。隐藏/显示表单控件工具栏的方法有:方法一:“显示”菜单→“表单控件工具栏”。

方法二:单击常用工具栏上的“表单控件工具栏”按钮。

7.4.1 向表单中添加控件对象

在表单设计器中,可以使用“表单控件工具栏”向表单中添加各种控件,如命令按钮、标签、文本框和图象等。

向表单中添加控件的操作非常简单:首先打开表单设计器,然后单击(即选定)“表单控件工具栏”中某个控件按钮,将鼠标移至表单中适当的位置,单击鼠标,便创建了一个控件。

【例 7.6 】在表单Frm7_2中添加一个标签和一个文本框,具体操作如下:

(1)打开表单Frm7_2。

(2)在“表单控件工具栏”中单击“标签”按钮,然后在表单空白处单击鼠标,便产生一个标签控件,其显示默认文字“Label1”。

(3)在“表单控件工具栏”中单击“文本框”按钮,然后在表单空白处单击鼠标,便产生一个文本框控件,其显示默认文字“Text1”。

7.4.2 设置控件对象

1. 选定控件对象

对表单中的对象进行操作之前,应该先选定对象。当鼠标单击某个对象后,该对象周围出现8个控点,这表明它是当前被选定的对象。使多个对象同时处于选定状态的方法有:

方法一:按住Shift键,再逐个单击欲选定的对象。

方法二:在表单空白位置按住鼠标左键拖动鼠标,在表单上拉出一个适当大小的虚线框,然后松开鼠标左键,被虚线框圈起来的所有对象都处于选定状态。

2. 改变控件大小

选定控件对象后,将鼠标移至对象的某个控点上,按住鼠标左键拖动对象的控点将改变其大小。

3. 移动控件

将鼠标移至欲移动的控件上,按住鼠标左键拖动控件,即可移动所选控件,若此刻有多个选定的控件,则它们将被同时移动。用键盘上的光标控制键可以微调选定控件的位置。

4. 复制、剪切与粘贴控件

将鼠标移至控件对象上,单击鼠标右键,在控件的快捷菜单中选择“复制”(或“剪切”)命令,再将鼠标移至目的位置,同样右击,选择“粘贴”命令。或者,也可以使用常用工具栏或“编辑”菜单中的“复制”(或“剪切”)和“粘贴”命令。均可实现对象的复制、剪切与粘贴任务。

5. 删除控件

选定控件对象后,选择“编辑”菜单中的“清除”命令,或使用键盘上的键可以删除所选控件。

6. 设置Tab键的次序

Tab键次序就是在表单运行时,连续按Tab键,光标所经过各个控件对象的顺序。系统默认的Tab键次序是向表单中添加控件对象的先后顺序,Tab键的次序可按下列步骤进行调整:

(1)确定调整Tab键次序的方法:“工具”菜单→“选项”命令→在“选项”对话框中选择“表单”选项卡→在“Tab键次序”组合框中选择“交互”(系统默认的调整方法)或“按列表”。

(2)设置Tab键次序:确定调整方法后,选择“显示”菜单中的“Tab键次序”命令来调整Tab键次序。

如果选用“交互”式的调整方法,则在各个控件对象的左上角将显示Tab键次序值(1、2、…),可以通过多次单击控件以改变Tab键次序值;若选用“按列表”式的调整方法,则会显示一个“Tab键次序”对话框,其中所显示对象的前后顺序就是Tab键次序,可以拖动对象左侧的按钮改变其上下位置,从而改变其Tab键次序。

7. 网格线的使用

在表单设计器中,表单上默认有网格线。在表单设计过程中,网格线主要起参照对象位置的作用。

(1)设置网格线的方法:“格式”菜单→“设置网格刻度”→在“设置网格刻度”对话框中设置网格的水平和垂直间距(单位是像素)。

(2)添加或移去网格线:“显示”菜单→“网格线”。

7.4.3 数据环境设计器

在例7.5中建立的表单,其中的控件之所以能够与数据表中相关字段的数据关联,是因为系统自动打开数据环境,并将数据表添加到数据环境中。数据环境在表单中的控件对象与数据表中的字段进行绑定时起到很重要的作用。

1. 数据环境

数据环境(Data environment)是个容器,可以包括表单中要用到的表、视图和关系;

表、视图和关系都可以看作是数据环境中的对象。当运行表单时,数据环境中的表就会自动打开;表单运行结束时,自动打开的表也会随着表单的关闭而关闭。

2. 数据环境设计器

利用数据环境设计器能可视化地创建或编辑数据环境。在表单设计器中,进入数据环境设计器的方法有:

方法一:“显示”菜单→“数据环境”。

方法二:在表单的空白区域右击→“数据环境”。

方法三:单击表单设计器工具栏上的“数据环境”按钮。

在首次打开数据环境设计器时,会弹出“打开”对话框,以便选择需添加到数据环境中的表;此时若点击“取消”按钮,则产生空的数据环境,待以后再添加所需的对象。

3. 数据环境的设置

数据环境设计器处于打开状态时,可以对数据环境进行添加表、删除表及设置表间关系。

(1)添加表:右击数据环境设计器窗口的空白处,选择“添加…”命令。执行此操作时分两种情况:

当数据环境为空,且当前没有打开的数据库时,系统首先弹出“打开”对话框,选择需要添加的数据表并确定,则将数据表添加到数据环境中,随后进入“添加表或视图”对话框(如图7.7)。

图7.7 “添加表或视图”对话框

当数据环境非空,或当前有打开的数据库时,选择“添加”命令之后,出现“添加表或视图”对话框(如图7.7)。

在“添加表或视图”对话框中,可在“数据库中的表”列表框中选定要添加的表,单击“添加”按钮将其添至数据环境中;单击“其他”按钮,在弹出的“打开”对话框中选择其他表。

(2)设置表间关系:将多个表添加到数据环境中后,如果某两个表之间存在永久关系,则这些关系自动添加到数据环境中,表现为两个表之间出现连线;对于没有关系的两个表,可以在数据环境设计器中为它们设置对应关系。

设置关系的方法很简单,用鼠标将父表中的关联字段拖动到子表的相关字段上,如果子表中的相关字段没有索引,则系统会提示创建索引。关联的两个表之间会自动出现表示关系的连线(如图7.8)。

图7.8 数据环境中表间的关系

若想解除表间的关系,首先用鼠标单击表间的连线,连线变成粗线条,表示连线被选定,此时按键删除连线,即解除表间的关系。

(3)移去表:在数据环境设计器中,移去表仅是将表从数据环境中移走,并不能从磁盘上删除表。操作方法有如下3种:

方法一:在数据环境设计器中,选定要移去的表→“数据环境”菜单→“移去”。

方法二:在数据环境设计器中,右击要移去的表→选择“移去”。

方法三:在数据环境设计器中,选定要移去的表→按键。

当表从数据环境中移去时,与此表有关的所有关系均被打断,即表间的关系被解除。

【例 7.7 】在表单Frm7_7的数据环境中添加学生表(XSB)和民族表(MZB),并以“民族码”字段为关联关键字设置两个表的关系。设表XSB和表MZB为自由表,且均无任何索引。具体操作如下:

(1)建立表单文件Frm7_7.SCX,并使表单设计器处于打开状态。

(2)在表单上的空白区域右击→“数据环境”命令。

(3)在“打开”对话框中找到XSB表文件,选定,单击“确定”按钮,XSB被添加至数据环境中,同时打开“添加表或视图”对话框,类似图7.7,区别是左侧“数据库”与“数据库中的表”的内容为空。

(4)单击“其他”按钮,在“打开”对话框中找到MZB表文件,选定,单击“确定”按钮。

(5)单击“添加表或视图”对话框中的“关闭”按钮,退出此窗口,进入数据环境设计器,进行表间的关系设置。

(6)将XSB表中的“民族码”字段拖至MZB表中的“民族码”字段上,在随即出现“是否建立索引”的对话框中单击“确定”,则表MZB按“民族码”建立索引,且与表XSB中的“民族码”字段建立了连线,即关系。

7.5 面向对象程序设计简介

面向对象程序设计OOP(Object-Oriented Programming)与结构化程序设计的主要区别在于:在程序设计时,可以利用对象来简化程序设计的过程,为应用程序用户提供可视化界面。VFP支持面向对象程序设计技术。

7.5.1 对象

现实世界中的任何实体都可以称为对象,对象可以是具体的实物,如:一个苹果,一名教师,一台计算机等。在面向对象的程序设计中,表单、命令按钮和文本框等都是程序中的对象,对象是构成程序的基本单位和实体。在VFP中,对象可以分控件对象和容器对象两种。

(1)控件对象:不能包含其他对象的基本对象就是控件类对象,如:标签、命令按钮、文本框等都是控件对象,也称之为标准控件。

(2)容器对象:能够包含其他对象的对象是容器对象,也称之为容器控件。如:表单、命令按钮组、选项按钮组和页框等都是容器控件。虽然容器对象能容纳其他对象,但其本身不能输入数据。各类容器中能包含的对象有所不同,一个容器对象也可能包含另一个容器对象。表7.1列出了各类容器能包含的对象。

表7.1 容器对象

对象是应用程序的重要组成部分,通过对象的属性、事件和方法来控制和管理对象,即属性、事件和方法是构成对象的三个要素。

7.5.2 对象的属性及其设置

1. 对象的属性

对象的属性用于描述对象的特征,如:名称(Name)、高度(Height)、宽度(Width)、背景颜色(BackColor)和前景颜色(ForeColor)等都是对象的属性。

对象的属性由属性名和属性值组成,通过设置其属性值可以改变对象的特征,而通过引用属性值可以实现对象之间的信息交换。VFP中表单的常用属性见表7.2。

表7.2 表单的常用属性

2. 对象属性的设置

可以通过静态和动态两种方法设置对象的属性。在表单设计器中,通过属性窗口(如图7.9)设置对象属性是静态设置;在程序代码中,利用语句修改对象的属性是动态设置。

当表单设计器处于打开状态时,属性窗口通常默认显示于VFP主窗口中,若属性窗口处于关闭状态,可以通过下列3种方法打开对象的“属性”窗口:

方法一:“显示”菜单→“属性”命令

方法二:右击对象→“属性”命令。

方法三:单击工具栏上的“属性窗口”按钮。

图7.9 对象属性窗口

3. 属性窗口的组成

属性窗口主要由对象选择框、选项卡、属性设置框、属性选择框和属性说明框5部分组成(如图7.9)。

(1)对象选择框:包含当前表单中的所有对象,可以通过“对象选择框”选择当前对象。

(2)选项卡:属性窗口中有“全部”、“数据”、“方法程序”、“布局”和“其他”5个选项卡,可以选择不同选项卡,分类查看和设置对象的属性、事件和方法。

(3)属性选择框:每一行包括属性名和属性值两列。属性值中以黑体字表示修改过的属性;以斜体字表示不允许用户修改的属性,其值由系统自动设置,如Class 和Parent 都是用户不可修改的属性。

选择某属性后,可以在“属性设置框”中输入或选择属性值,其方法如下:

若“属性设置框”为文本框,则通过键盘向文本框中输入属性值,按回车键或单击“√”按钮使属性值生效。

若“属性设置框”为组合框,则在组合框中选择属性值,或者双击属性行切换到理想的属性值。

若“属性设置框”右侧有浏览按钮,则单击浏览按钮后可以选择适当的属性值。

在修改过的属性行处右击,选择弹出菜单中的“重置为默认值”命令,可以将属

性恢复到系统默认值。

(4)属性说明框:在“属性选择框”中选定某一属性、事件或方法时,此位置将显示属性的简要说明,以帮助用户了解所选内容的含义。

【例 7.8 】表单属性的设置,操作步骤如下:

(1)建立新表单Frm7_8.SCX,并使其处于打开状态。

(2)确认属性窗口中“对象选择框”中的对象名为“Form1”,即为当前表单。

(3)参照表7.3设置表单属性。

表7.3 例7.8表单属性表

(4)运行表单,观察表单运行结果。

7.5.3 对象的事件及触发条件

在面向对象程序设计中,事件(Event)是指一种由系统预先定义的一个动作。一旦触发某事件,系统就会自动执行该事件的程序代码,当事件程序执行完毕后,系统又会等待新的事件发生。例如,单击某个命令按钮时,就会触发该命令按钮的Click事件,系统执行Click事件中的代码。

1. 触发事件的方式

面向对象程序是在事件驱动下运行,触发事件的方式可以分为3种:

(1)用户触发:当用户进行某种操作时可能触发对象的相关事件。例如,单击某对象时,将触发该对象的Click事件;从键盘输入信息时,将触发对应对象的KeyPress事件等。

(2)系统触发:当系统内部发生变化时,可能触发对象的相关事件。例如,每隔一段时间,系统可能触发计时器对象的Timer事件;当程序运行出错时,系统可能触发相关对象的Error事件等。

(3)代码触发:在程序运行过程中,执行到对象某些方法时,将触发对象的相关事件。例如,执行Setfocus方法将触发获得焦点对象的GotFocus事件,同时触发失去焦点对象的LostFocus事件。

VFP常用事件,如表7.4。

表7.4 VFP常用事件

2. 编写事件代码

在设计应用程序时,如果对某事件没有编写代码,则系统执行默认过程。为了完成特定任务,需要对事件进行编写代码。代码应在代码编辑窗口(如图7.10)中进行编写,进入代码编辑窗口的方法有如下4种:

图7.10 Command1的Click事件代码编辑窗口

方法一:双击对象。

方法二:右击对象→“代码”命令。

方法三:“显示”菜单→“代码”命令。

方法四:双击属性窗口中的事件名称。

代码编辑窗口上有两个组合框,“对象”选择框用来选择对象;“过程”选择框用来选择事件。确定要编写代码的对象及事件后,可在代码编辑区中输入事件的程序代码。

7.5.4 对象的方法及作用

方法是VFP为对象设计的内部通用过程,可以使对象执行某种操作,方法的程序代码由系统内部定义,对用户是不可见的。

在属性窗口的“全部”或“方法程序”选项卡下,可以查看对象的方法名。常用的方法有:

(1)Release:关闭表单并释放表单所占用的内存空间。

(2)Refresh:刷新表单或控件上的相关数据。调用表单的Refresh方法时,系统自动调用表单中控件的Refresh方法。

(3)Show:使对象可见,并将对象的Visible属性设置为.T.。

(4)Hide:隐藏对象,并将对象的Visible属性设置为.F.。

(5)Setfocus:使对象获得焦点。仅有Enabled和Visible属性值均为.T.的对象才能获得焦点。

【例 7.9 】建立一个表单,使其运行时,单击Command1命令按钮关闭表单。

(1)建立表单文件Frm7_9.SCX,并使其处于打开状态。

(2)在表单工具栏中选定命令按钮,单击表单中适当位置,产生“Command1”命令按钮

(3)双击“Command1”命令按钮,进入其Click事件的代码编辑窗口,编写代码:Thisform.Release

(4)运行表单,单击“Command1”按钮。

7.5.5 VFP对象的引用

在面向对象程序设计中,程序代码可以通过对象的引用来指定对象的属性或对象的方法。在VFP中,引用对象的方式有绝对引用和相对引用两种。

1.绝对引用

绝对引用是从包含对象的最外层容器名开始,由外向内,一层一层地引用,对象之间用圆点“.”隔开。引用格式为:

<表单名>.[<对象名1>.] [<对象名2>.]……<对象名n>.<属性名|方法名>

表单名是表单文件名或者是Do Form …Name …语句中命名的引用名。各对象名均是对象的Name属性值。格式中由左到右是逐级包含关系,而<属性名|方法名>为最后一级对象的属性或方法,即<对象名n>是真正被操作的对象。

【例 7.10 】文件名为Frm.SCX的表单文件,其中表单上有一个命令按钮,其Name 属性值为Command1,则对命令按钮的Caption属性的正确引用为:

https://www.doczj.com/doc/dc6292257.html,mand1.Caption && 表单文件Frm中Command1命令按钮的Caption属性。

2.相对引用

相对引用是从当前对象位置开始,逐层地找到要引用的对象。相对引用对象时,通常以下列关键字开头:

(1)ThisForm:表示程序代码所在的表单。

(2)This:表示程序代码所在方法或事件直接隶属的对象。

其引用格式如下:

[对象名1.][对象名2.]……[对象名n.]<属性名|方法名>

例如,下列都是正确的引用格式:

This.Caption && 当前对象(表单或控件)的Caption属性

ThisForm.Caption && 当前表单的Caption属性

https://www.doczj.com/doc/dc6292257.html,mand1.Caption && 当前表单上的Command1命令按钮的Caption属性

ThisForm.Release && 释放当前表单,即关闭窗口,此例为方法的引用

3. Parent属性

Parent是对象的一个属性,表示当前对象所在的直接容器(即父对象)。

【例 7.11 】表单中有标签Label1和命令按钮Command1两个控件,当前对象为命令按钮,则对标签Caption属性的正确引用为:

https://www.doczj.com/doc/dc6292257.html,bel1.Caption

* 表示当前对象(Command1)的直接容器(即表单)里的Label1标签的Capton属性

4.动态设置对象属性

利用属性窗口修改对象属性的值,属于静态设置对象属性的值,适用于表单的设计阶段。在设计表单程序时,有时希望在表单运行时能修改对象的属性值,即利用代码完成对象属性的更改,这种方法就是动态设置属性。其设置格式如下:

对象的逐级引用.<属性>=<属性值>

其中,<属性值>可以是一个表达式,或其他对象的属性值,但其数据类型与待设置的对象属性的数据类型必须一致。

动态设置对象属性的方法,只有在表单运行时才有效,当表单处于编辑状态时,此方法无效。

【例 7.12 】运行表单时,单击其中命令按钮,表单标题变为“动态设置属性练习”。

(1)建立新表单,文件名为Frm7_12.SCX

(2)在表单中添加命令按钮“Command1”。

(3)双击“Command1”按钮,进入其Click事件的代码编辑窗口,输入下列代码:ThisForm.Caption=“动态设置属性练习”&& 为当前表单的Caption属性赋值(4)运行表单,单击“Command1”命令按钮,窗口标题变为“动态设置属性练习”。

【例 7.13】单击一个运行表单中的命令按钮,将表单的标题显示在命令按钮上。

(1)建立新表单,文件名为Frm7_13.SCX;

(2)修改表单的Caption属性为“练习”;

(3)在表单中添加命令按钮“Command1”;

(4)双击“Command1”命令按钮,进入其Click事件的代码编辑窗口,输入下列代码:

https://www.doczj.com/doc/dc6292257.html,mand1.Caption=ThisFrom.Caption

* 将当前表单的Caption属性赋给命令按钮Command1的Caption属性(5)运行表单,单击“Command1”命令按钮。

习题七

一、用适当内容填空

1.要打开表单设计器窗口,可以使用的VFP命令是【①】或【②】。

2.当把表单存盘时,将产生扩展名为【①】的【②】文件和扩展名为【③】的【④】文件。

3.现实世界中的每一个事物可被抽象的看作是一个【①】,如:一本书,一名学生等。它所具有的特征被称为【②】,如:颜色,大小等。

4.在“【①】”窗口的“【②】”选项卡中,列出了当前被选定对象的所有属性、事件和方法。

5.若想更改表单的标题,则应该设置其【】属性。

6.在面向对象的程序设计中,使对象可见的方法名是【】。

7.ThisForm.Release表示【①】;而ThisForm.Refresh表示【②】。

8.若表单文件名为Form1,当前选定对象是Label1,则:https://www.doczj.com/doc/dc6292257.html,bel1.Caption引用对象的方式是【①】;This.Caption引用对象的方式是【②】。

9.若向表单中添加控件对象,则应首先选定【①】工具栏中的某个控件按钮,然后将鼠标移至表单上适当位置【②】,就可以添加该控件对象。

10.在面向对象的程序设计中,触发事件的方式有【①】、【②】和【③】。

二、从参考答案中选择一个最佳答案

1.在VFP中,表单(Form)是指【】。

A.数据库中各表的清单

B.一个表中各个记录的清单

C.数据库查询的列表清单

D.窗口界面

2.表单控件工具栏用于在表单上创建【】。

A.文本

B.命令

C.控件

D.复选框

3.表单文件保存在以【】为扩展名的文件中。

A.SCX

B.MNX

C. PJX

D.FRX

4.下列控件中,不属于容器类控件的是【】。

A.页面

B.标签

C.表格

D.命令按钮组

5.若要同时选定表单中的多个对象,可按住【】键的同时再单击其他对象。

A. Ctrl

B.Shift

C.Alt

D.空格键

6.可以刷新表单及其控件上的相关数据的方法是【】。

A.Refresh

B.Release

C.Renew

D.ReShow

7.若要从内存中释放表单,可以使用表单的【】方法。

A.Refresh

B.Release

C.Revolution

D.Hide

8.在VFP中按【】组合键可保存表单。

A.Ctrl+S

B.Ctrl+W

C.Alt+S

D.Alt+W

9.以下关于表单数据环境叙述错误的是【】。

A.可以向表单数据环境设计器中添加表

B.可以从表单数据环境设计器中移出表

C.可以在表单数据环境设计器中设置表之间的关系

D.从表单数据环境中移出表后,不会解除它与其他表在数据环境中的关系。

10.设计表单时,可以利用【】向表单中添加控件。

A.表单设计器工具栏

B.布局工具栏

C.调色板工具栏

D.表单控件工具栏

11.下列属性中,【】属性用于描述表单的窗口类型。

A.Caption

https://www.doczj.com/doc/dc6292257.html,

C.TabStop

D.WindowType

12.表单有自己的属性、事件和【】。

A.容器

B.方法

C.图形

D.命令按钮

13.【】触发DbClick事件。

A.当用户双击该对象

B.当创建对象

C.当从内存中释放对象

D.当表单或表单集装入内存

14.在表单MyForm中有一个标签Label1和一个命令按钮Command1,当前对象为命令按钮,若引用标签的Caption属性,则正确的引用为【】。

https://www.doczj.com/doc/dc6292257.html,bel1.Caption

https://www.doczj.com/doc/dc6292257.html,bel1.Caption

C. https://www.doczj.com/doc/dc6292257.html,bel1.Caption

D.This.Caption

15.现有一表单,表单上有一个命令按钮Command1,若想单击命令后,表单的栏题变为“欢迎使用本系统”,则在命令按钮的的Click事件中,应使用【】命令。

A.Myform.Caption=”欢迎使用本系统”

B.ThisForm.Caption=”欢迎使用本系统”

https://www.doczj.com/doc/dc6292257.html,mand1.Caption=”欢迎使用本系统”

D.This.Caption=”欢迎使用本系统”

三、从参考答案中选择全部正确答案

1.以下关于OOP的叙述,正确的是【】。

第七章 面向对象的程序设计

第七章面向对象的程序设计 本章是面向对象的程序设计。与第五章介绍的面向过程的结构化程序设计不同,主要介 绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对 象的编程技术,详尽介绍了对各类控件的选择与使用方法。在对诸如表单等各类控件对象的设 计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序 代码设计中,仍然使用到结构化的程序设计方法。本章的主要内容是面向对象程序设计的理论 基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。 7.1 学习提要 1.学习目标与要求 通过本章学习,读者应达到以下要求: ⑴了解对象、类等基本概念; ⑵理解对象的属性、方法和事件; ⑶熟练掌握表单的基本设计、操作和应用; ⑷掌握常用控件的设计与使用。 ⑸熟练掌握常用事件、方法的过程代码的设计方法。 ⑹了解自定义类的创建和使用方法。 2.重点与难点: ⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控 件属性、事件和方法的选择与运用。 ⑵本章难点:本章的重点即为本章的难点 3.主要知识点 ⑴面向对象的概念 ①对象、类 ②属性、方法、事件 ③Visual FoxPro 中的基类 ⑵表单的创建与基本操作 ①表单的创建 使用“窗体设计器”或“表单向导”创建表单。 ②表单的修改、运行 使用“窗体设计器”编辑修改表单。使用菜单或命令方式运行表单。 ③表单的属性、事件和方法

表单常用属性的设置,表单的常用事件、常用方法。 ④设置表单的数据环境 数据环境的概念,数据环境的设置。 ⑶表单常用控件 ①表单常用控件的基本操作 控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。 ②常用控件对象 标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。 ③控件对象的常用属性设置 Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。 ④控件对象的常用事件的使用 Load事件,Init事件,Destroy事件,Unload事件,Error事件,Click事件, DblClick事件,RightClick事件。 ⑤控件对象的常用方法的使用 SetFocus方法,Release方法,Refresh方法,Show方法,Hide方法。 ⑷类的建立 使用“类设计器”创建类。 7.2 习题 一、单项选择题 1.以下关于Visual FoxPro类的说法,不正确的是() A)类具有继承性 B)用户必须给基类定义属性,否则出错 C)子类一定具有父类的全部属性 D)用户可以按照已有的类派生出多个子类 2.下列基类中是容器类的是() A)表单B)命令按钮C)列表框D)单选按钮 3.下列关于“类”的叙述中,错误的是() A)类是对象的集合,而对象是类的实例 B)一个类包含了相似对象的特征和行为方法 C)类并不实行任何行为操作,它仅仅表明该怎样做 D)类可以按其定义的属性、事件和方法进行实际的行为操作

教学设计表单控件--选项按钮组

优秀课堂教学设计 课题:表单控件----选项按钮组 教材分析:本节课是选自中等职业学校计算机技术专业的《数据库应用技术----VISUAL FOXPRO6.0》中第六章表单设计中的第三节的内容。本 节课是在同学们已经掌握了几种基本表单控件的基础上,进一步学 习选项按扭组控件。 (1)重点:选项按钮组的基本属性和特有属性 (2)难点:选项按钮组的应用 (3)能力目标:通过了解选项按钮组的特性,并予以适当的启发,让学生能够利用此控件具有创造性的设计出实用表单,培养学生的创造 力。 (4)知识目标:熟知选项按钮组的特性并熟练应用。 (5)情感目标:通过讨论增进同学们的感情交流和知识交流。 课程重组:由于书上对本节的内容实例较少且实例多是在以往例题的基础上添加上此控因此控件属性突出不明显,为此我特地专对此控件的属性 设计了一道例题,不但能突出这个控件的特有属性,而且能极大的 提高学生的学习兴趣,有利有的突出了重点问题,为解决难点做好 了铺垫。在精心设置例题的基础上增加了让学生自己根据控件属性 设置问题的环节,不但能增加学生学习的兴趣而且有利于学习对本 节课的内容进行深层次的思考,从而达到突破难点的目的。 学情分析:学生在学习本节课之前已经学习了一些控件,对于控件的学习已经有了一定学习经验,知道在学习控件的学习过程中应该注意哪些地 方。但是由于控件学习的比较多,而且有很多相似的地方学生容易 产生厌烦情绪,为了解决这个问题,要在引入此控件时设置好问题 情境,引发学生学习兴趣,且鼓励学生进行大胆的设想,培养同学 们的创造思维能力。根据学生学习能力水平的不同在请同学们上前

操作时,按照要操作的内容有选择性的挑选学生上来操作,在做简 单操作时挑选那些平时操作不是很熟练且胆子比较小的同学,在培 养他们胆量的同时通过完成一些简单操作激发他们的信心。对于那 些较有难度且需要进行一不思考的问题,找一些底子比较好但是又 不会很快把这个问题解决出来的同学来做,在他做的过程中可激发 其他同学的参与欲望,达到共同学习、共同进步的目的。 教学过程: (1)复习提问: 教师活动:回顾上次所讲内容,并给出习题:字幕移动,从下向上移动。 学生活动:请同学上前来演示,下面的同学可给予提示及帮助。 教学目标:能过对上次内容的温习,强化同学们对表单的理解及各种控件的使用。 (2)设置情境: 教师活动:设置疑问,假定情境,如要用表单出一道选择题,想想此种情况下应该用什么控件能实现,从而引入要学习的控件,且学 生可以明确此种控件的用途。 学生活动:思考应该选择题具有什么样的属性。(只能有一个选项为真,其余各项互斥) 教学目标:把握新旧知识的连接点,明确此种控件的用途。 (3)欣赏: 教师活动:播放成型作品,引起学生的兴趣,设置疑问:除了所演示的例题之外同学们所还能想到能够利用这个控件的特性解决哪 些问题。 学生活动:请学生欣赏,激发学生的兴趣,开启学生的想象力。 教学目标:为学生提供丰富的视觉效果,引发学生的想象空间。 *怎样学:讲解例题,通过对例题的学习进一步明确此控件的特有属性。

Adobe_Designer设计表单

点击’New Form’, 新表单向导就打开了,根据自己的需求创建全新的表单或者在已有表单的基础上进行修改,选择结束后点击’Finish’按钮即可。当然了,如果单纯的创建新表单的话,可以直接点击主界面右上角的’New’按钮。 当新空白表单创建出来以后,我们就可以开始设计表单了。Designe为用户提供了很多现成的控件。点击菜单Window -> Object Library (或者用快捷键Shift+F12), 控件库就出现在屏幕的右上角了,如下图所示。 默认的控件库分为3大类,包含标准控件,如比较常用的按钮,下拉框,文本编辑框等都在里面。另外一类是需要用户自己定制的的控件,如日期选择框,国家/地区选择下拉框等。最后一类是各种各样的条形码,如Code128A, UPC-A等。当然除了预装的控件,客户还可以通过图形界面导入自己定制的控件,用起来非常方便。

这里我用最常用控件之一’文本编辑框’(Text Field)举例, 来演示一下通过Designer都可以完成哪些操作: 首先我们在标准控件中找到’Text Field’并通过拖拽的方式把它放入’Designer View’中。 控件是按照标准尺寸显示在设计视图上的,可以通过控件边缘的拖拽来调整大小。 大小调整完毕后,点击菜单Window -> Object (或者用快捷键Shift+F7)来调出控件属性标签,标签默认显示在屏幕的右下角,如下图所示:

‘Field’ tab主要是用来设置’Text Field’的外观的,包括它的名字,它想使用什么样的文本框,文本框的字符限制等。在’Field’标签旁边还有一个’Value’标签,它也非常有用,主要是用来进行输入文本的校验的。点击’Validation Pattern…’按钮,模板窗口弹出,我们选 择’Zip Code’, 它的格式是五位数字,如下图。

表单设计-控件属性功能说明

表单设计-控件属性功能说明一.通用属性: 1.标题 功能介绍:对所要填写的内容做说明。 使用举例:物业地址,房源编号,租客姓名等。 2.描述信息 功能介绍:对标题信息的补充说明,可用颜色标红。 使用举例:请填写房源真实物业地址,请填写合同上的租客姓名等。

3.校验 功能介绍:限制字段内容是否为必填项,不填写无法提交。 4.字段权限 功能介绍:当前字段内容的是否可见/是否可编辑修改。

二.高级属性: 1.单行文本控件:格式 功能介绍:对输入内容进行限制, 限制的内容如图所示: 2.数字控件:仅允许填写整数 功能介绍:是否允许填写带小数的数字。 3.日期时间控件:类型包括日期/日期时间,默认值填写当天

功能介绍:日期是精确到日,日期时间是精确到秒,默认值自动生成填写当天的日期。 4.下拉选择框/单选按钮组控件:选项关联 功能介绍:通过选择不同选项来控制以下需要显示的内容。 使用举例:当退房时选择不同的退房类型,来设置不同的费用退款情况。 5.流水号控件:流水号规则 功能介绍:以下三种规则,自由组合,每走一条流程自动生成 自动计数:自动生成数字,自由配置重置周期,

提交日期:可显示提交日期,自由选择显示格式 固定字符:可自由设置显示内容,包括英文,中文,符号。 6.数字控件:公式编辑 功能介绍:可以在英文输入法模式下编辑公式,支持运算符号和函数编辑。 支持运算符号:加“+”,减“-”,乘“*”,除“/”, 函数:sum求和和if条件格式进行设置。 支持运算符号:大于“>”,小于“<”,等于“==”,不等于“!=”,大于等于“>=”,小于等于“<=”,括号“()”

数据库 lesson7 第七章 表单控件设计

第七章表单控件设计 表单控件可分为5大类 (1)输出类:标签,图象,线条,形状 (2)输入类:文本框,编辑框,微调按钮,列表框,组合框(3)控制类:命令按钮,命令按钮组,复选框,选项按钮组, 计时器 (4)容器类:表格,页框,Container容器 (5)连结类:ActiveX控件,ActiveX绑定控件,超级链接每个控件均具有若干特征属性,有相同也有差别,通过属性设置可以设计出满足要求的控件。 7.1 输出类控件 输出类控件用于在表单上设置文本和图形 7.1.1 标签 用于在表单上显示提示或说明 一、标签的标题 Caption属性指定标签的标题,即显示的文本内容 修改方法: (1)属性窗口修改Caption属性 (2)代码命令: https://www.doczj.com/doc/dc6292257.html,BEL1.Caption=“文本内容”(3)变量设置:https://www.doczj.com/doc/dc6292257.html,BEL1.Caption=mc,mc 是一个字符型公共变量

二、部分属性 (1)AutoSize (大小设置):逻辑型,.T.表示自动调整大小与文本内容所占空间一致 (2)BackStyle (背景设置):0(透明),1(不透明) (3)BolderStyle (边框特性):0(无(默认值)),1(固定单线) 用户设置过的属性将以粗体显示7.1.2 图象、线条与形状 一、图象 Picture 属性可在表单上创建图象,类型可以为 .BMP ,.ICO ,.GIF ,.JPG 等 Picture 属性修改方法:(1)属性窗口设定(2)代码命令 THISFORM.Image1.Picture=“c:\Program Files\Microsoft Visual Studio\Vfp98\fox.bmp ” P201表7-1提供了各类图象的位置,文件夹与VFP 的的 安装位置有关。如上例 选定Picture 属性, 通过文本框右側的 对话框选择图象

计算机二级VF第七章 表单设计与应用

第七章表单设计与应用 第一节面向对象的概念 一、对象与类 1.对象(Object)客观世界里的任何实体都可以被看作是对象。每个对象都有自己的属性和方法。属性用来表示对象的状态/形态,方法用来描述对象的行为。我们可以把对象看成由属性和方法组成的包 2.类(Class):类是对一类相似对象的性质的描述,这些对象具有相同的性质:相同种类的属性及方法。 二、子类与继承 继承表达了一种从一般到特殊的进化过程。一个子类的成员一般包括 1)从其父类继承的成员(父类的属性、方 法) 2)由子类自己定义的成员(自已特有的属 性、方法) 第二节 Visual FoxPro基类简介 一、Visual FoxPro基类 CheckBox复选框 ComboBox组合框

CommandButton命令按钮 CommandGroup命令按钮组 EditBox编辑框 Form表单 FormSet表单集 Grid 表格/Column 列/Header 列标头 Label标签 ListBox列表框 OptionButton选项按钮 OptionGroup选项按钮组 Page页 PageFrame页框 Spinner微调控件 TextBox文本框 Timer定时器(计时器) 二、Visual FoxPro基类的最小属性集 Class 类名 BaseClass 基类名 ClassLibrary 类库名 ParentClass 父类名 三、容器与控件 1.容器:能包容其它对象的对象。如表单、

页框、页、命令按钮组等 2.控件:不能包容其它对象的对象。如命令按钮、选项按钮等 注意:不同的容器所能包容的对象也不相同。 *容器层次中的对象引用属性或关键字 Parent 包容当前对象的容器 This 当前对象 ThisForm 包容当前对象的表单 *ThisFormSet包容当前对象的表单集 四、事件 事件是一种由系统预先定义而由用户或系 统发出的动作。事件作用于对象,对象识别事件并作出相应反应。 *Visual FoxPro基类的最小事件集 Init 初始化 Destroy 释放 Error 出错 第三节创建与管理表单 一、创建表单 1.使用表单向导创建针对表文件操作的即

相关主题
文本预览
相关文档 最新文档