1
第 九 章表 单 设 计目录上一页下一页退出
2
本 章 目 录
第一节 简单表单的创建
第二节 表单设计器
第三节 表单的属性、事件和方法程序
第四节 表单控件
第五节 表单的应用目录上一页下一页退出
3
第一节 简单表单的创建表单 (Form)是 Visual FoxPro提供的用于建立应用程序界面的最主要的工具之一。表单相当于 WINDOWS应用程序的窗口表单可以属于某个项目,也可以游离于任何项目之外,它是一个特殊的磁盘文件,其扩展名为,scx。 在项目管理器中创建的表单自动隶属于该项目。创建表单一般有两种途径:
使用表单向导创建简易的数据表单;
使用表单设计器创建或修改任何形式的表单。
目录上一页下一页退出
4
一、表单创建方法与表单类型
1,表单创建方法表单的创建有以下三种方法:
(1) 利用命令窗口输入命令创建一个表单的命令格式:
CREATE FORM <表单名 >
(2) 利用表单向导生成表单,可以创建基于一个表或视图的表单,也可创建一对多的表单,该方法只须按系统提供的操作步骤和屏幕提示按步进行就能完成 。
(3)利用表单设计器生成表单,可以创建简单表单、
复杂表单和一对多表单,该方法可根据用户需要在设计器中选取各种控件,满足不同的功能要求,方法灵活,实用性强。
目录上一页下一页退出
5
2.表单的类型根据表单数据来源的不同,可将表单分为以下几种类型:
( 1 ) 简单表单,该表单的数据来源于某一个表或某一个视图 。
( 2 ) 复杂表单,该表单的数据来源于多个表或多个视图 。
( 3 ) 一对多表单,该表单的数据来源于两个表,
这两个表必须是按一对多的关系连接起来,
其中一个为父表,另一个为子表。
目录上一页下一页退出
6
二、利用表单向导创建表单
1.使用表单向导启动表单向导有以下四种途径:
( 1) 打开,项目管理器,,选择,文档,选项卡,从中选择,表单,。 然后单击,新建,按钮 。 在弹出的
,新建表单,对话框中单击,表单向导,按钮 。
( 2) 在系统菜单中选择 【 文件 】 |【 新建 】 命令,或者单击工具栏上的,新建,按钮,打开,新建,对话框,
在文件类型栏中选择,表单,。 然后单击,向导,按钮 。
( 3) 在系统菜单中选择 【 工具 】 |【 向导 】 |【 表单 】 命令 。
( 4)直接单击常用工具栏上的“表单向导”图标按钮。
按步骤依照,表单向导,完成一对多表表单的设计目录上一页下一页退出
7
2.创建表单
【 例 9-1】 假设以读者表为数据来源,制作查询读者信息的查询表单 (reader.scx)。
具体操作方法如下:
(1) 启动表单向导,在,新建表单,对话框中选取
,表单向导,按钮。
(2) 在弹出的,向导选取,对话框中选择,表单向导,选项。
(3) 单击,确定,按钮后,出现表单向导的第一个对话框,如图 9-1所示。这一步主要选择数据库表或自由表中的全部,字段,或部份,字段,,作为表单的显示对象。本例选择,读者,数据表中字段名为读者编号、姓名、性别、出生日期、籍贯、联系电话等六个字段。
目录上一页下一页退出
8
图 9-1 表单向导第一个对话框 图 9-2 表单向导第二个对话框目录上一页下一页退出
9
(4) 单击,下一步,按钮后,出现如图 9-2所示的表单向导第二个对话框,该步骤主要用来选择表单的显示格式,向导系统提供了九种样式供用户选择,本例从样式选项框中选中浮雕式。
在对话框的按钮类型选框中,有文本按钮、图片按钮、无按钮和定制 4种类型,本例选择的是文本按钮,表示表单将自动生成一组以文本表示的命令按钮。如图 9-3所示。
图 9-3 文本按钮方式目录上一页下一页退出
10
(5) 单击,下一步,按钮,出现如图 9-4所示的表单 向导第三个对话框 。 该对话框主要用来选择 排序关键字,本例选择,读者编号,作为关键 字,按升序排序 。
(6) 单击,下一步,按钮,出现如图 9-5所示的表单 向导第四个对话框,输入表单标题,默认值 为,读者,,下面的三个单选项和三个复选项 主要用来询问在创建完这个表单后要做的工 作。若对当前设置的表单进行预览,可单击 右面的,预览,按钮。预览后,单击
,返回向导,按钮即可回到表单向导。
目录上一页下一页退出
11
图 9-4 表单向导第三个对话框 图 9-5 表单向导第四个对话框目录上一页下一页退出
12
(7) 保存表单。单击,完成,按钮,系统弹出
,另存为,对话框,选择表单文件保存的磁盘路径,输入新的表单文件名,并在,保存类型,
下拉表中选取,表单,类型,如图 9-6所示。单击,保存,按钮,该表单就保存到了磁盘上。
图 9-6,另存为,对话框目录上一页下一页退出
13
三、表单的运行
1.运行表单一般有三种方式命令方式,在命令窗口中,直接输入命令:
DO FORM <表单名 >
2.打开表单,在表单设计器窗口运行表单
(1) 打开表单单击,打开,菜单工具按钮,弹出,打开,对话框。
在文件类型下拉表中选取,表单,项,在文件名栏中输入所需表单文件名,单击,确定,按钮。
(2) 运行表单在表单设计器窗口,选择,表单,菜单中的,运行,
命令,或直接单击工具栏中的运行按钮。
3.在项目管理器中运行表单打开项目管理器,选中项目管理器中的,文档,选项卡,
选择要运行的表单,单击,运行,按钮。
目录上一页下一页退出
14
四、创建一对多表单
【 例 9-2】 试在图书管理系统中,运用读者表和借书表查阅某个读者所借图书情况,创建表单 ( 读者借书,scx) 。
其操作步骤如下:
(1)启动表单向导 。
(2)在,向导选取,对话框中,选择,一对多表单向导,。
(4)单击,确定,按钮,出现如图 9-7所示的对话框。从父 表中选取所需字段。
(5)单击,下一步,按钮,出现如图 9-8所示的对话框,
在对 话框中选择与父表有直接关系的子表,从子表中选择 要在表单中显示的字段。
注意,在创建一个一对多表单时,两个数据表之间应该可以建立连接关系,否则无法创建一对多表单。
目录上一页下一页退出
15
图 9-7 从父表中选取字段对话框 图 9-8 从子表中选取字段对话框目录上一页下一页退出
16
(6) 单击,下一步,按钮,出现对话框。为表单中的两个数据表之间建立关系。本例选择的是,读者编号,作为
,读者表,与,借书表,之间的关键字段。
(7) 单击,下一步,按钮,出现对话框,选择表单样式和按钮类型,在这里选择的是,标准式,表单样式,而按钮类型选择的是,图片按钮,。
(8) 单击,下一步,按钮,出现对话框,选择父表中的排序关键字。在这里选取,读者编号,字段作为父表升序排序的关键字。
(9) 单击,下一步,按钮,出现对话框,输入表单标题名,
本例输入,读者借书查询,,并选取,保存表单以备将来使用,单选项。
(10) 运行该表单后,可得到如图 9-9所示的窗口。
目录上一页下一页退出
17
图 9-9 读者借书查询表单运行窗口目录上一页下一页退出
18
第二节 表单设计器一、启动表单设计器 方法启动表单设计器有多种方法:
● 菜单方法:若是新建表单,在系统 菜单中选择 【 文件 】
|【 新建 】,在文件类型对话框中选择,表单,,单击
,新建文件,按钮;若是修改表单,则单击 【 文件 】 |
【 打开 】,在打开对话框中选择要修改的表单文件名,
单击,打开,按钮 。
● 命令方法,在 COMMAND窗口输入如下命令:
CREATE FORM <文件名 > &创建新的表单或
MODIFY FORM <文件名 > &打开一个已有的表单
● 在项目管理器中,先选择文档标签,然后选择表单,
单击新建按钮。若是修改表单,选择要修改的表单,单击“修改”按钮。
目录上一页下一页退出
19
二、表单设计器环境介绍
1,设计器窗口
“表单设计器”窗口内包含正在设计的表单。用户可在表单窗口中可视化地添加和修改控件、改变控件布局,表单窗口只能在“表单设计器”窗口内移动。以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单,如图 9-10左侧部分 。
图 9-10 表单设计器目录上一页下一页退出
20
2,属性窗口设计表单的绝大多数工作都是在属性窗口中完成的,
因此用户必须熟悉属性窗口的用法 。 如果在表单设计器中没有出现属性窗口,可在系统菜单中单击 【 显示 】
|【 属性 】,属性窗口如图 9-11所示 。
页框选项卡
“对象”下拉列表框图属性设置框图 9-11 属性窗口目录上一页下一页退出
21
3,表单控件工具栏设计表单的主要任务就是利用,表单控件,设计交互式用户界面。,表单控件,工具栏是表单设计的主要工具。默认包含 21个控件,4个辅助按钮,
如图 9-12所示。
图 9-12 表单控件目录上一页下一页退出
22
设置 Tab健次序 属性窗口 表单控件工具栏 布局工具栏 自动格式数据环境 代码窗口 调色板工具栏 表单生成器
4.表单设计器工具栏打开,表单设计器,时,主窗口中会自动出现,表单设计器,工具栏,如图 9-12所示 。
图 9-12 表单设计器工具栏目录上一页下一页退出
23
三、快速表单
1.表单生成器调用表单生成器的方法有以下三种:
( 1) 在系统菜单中选择 【 表单 】 |【 快速表单 】 命令 。
( 2) 单击,表单设计器,工具栏中的,表单生成器,按钮 。
( 3) 右击表单窗口,然后在弹出的快捷菜单中选择,生成器,命令 。
目录上一页下一页退出
24
2.运用表单生成器创建表单
【 例 9-3】 运用读者表创建快速表单 (quck_reader.scx)。
操作步骤如下:
第一步,打开表单设计器 。
第二步,单击,表单,菜单项下的,快速表单,命令;或单击表单设计器工具栏中的,表单生成器按钮,;或在新建的表单上单击鼠标右键,在弹出的快捷菜单中选择
,生成器 …,选项,则出现如图 9-13所示的表单生成器对话框。
第三步,在表单生成器对话框中单击,字段选取,标签项,
选择读者数据表,在字段列表框下选定字段。
第四步,单击,样式,标签项,选择表单控件的样式,新奇式,。
第五步,单击,确定,按钮,出现如图 9-14所示的表单控件布局窗口,用户可用鼠标对表单控件位置进行适当调整 。
目录上一页下一页退出
25
图 9-14 表单控件布局图 9-13,表单生成器,对话框 选择所需字段,加到
“选择字段列表中”
运用鼠标操作可调整表单中各控件的位置目录上一页下一页退出
26
第六步,单击,文件,菜单项下的,另存为 …,功能,
弹出,另存为,对 话 框,输 入 表 单 文 件 名
quck_reader.scx,单击,保存,按钮 。
第七步,单击工具栏中的,运行,按钮,即可运行该表单。
目录上一页下一页退出
27
四、数据环境
1,打开数据环境设计器表单设计器环境下,单击,表单设计器,工具栏上的,数据环境,按钮,或选择 【 显示 】
|【 数据环境 】 命令,即可打开,数据环境设计器,窗口,此时,系统菜单栏上将出现
,数据环境,菜单 。
2,数据环境的常用属性常用的两个数据环境属性是 AutoOpenTables
和 AutoCloseTables
目录上一页下一页退出
28
3.向数据环境添加表或视图在数据环境设计器环境下,按下列方法向数据环境添加表或视图:
在系统菜单中选择 【 数据环境 】 |【 添加 】 命令,或右键单击,数据环境设计器窗口,,然后在弹出的快捷菜单中选择 【 添加 】 命令,打开,添加表或视图,对话框,如图所示 。 如果数据环境原来是空的,那么在打开数据环境设计器时,该对话框就会自动出现 。
选择所需表,单击,添加,
目录上一页下一页退出
29
4,从数据环境中移去表或视图在“数据环境设计器”窗口中,选择要移去的表或视图,在系统菜单中选择【数据环境】 |【移去】命令。也可以用鼠标右键单击要移去的表或视图,然后在弹出的快捷菜单中选择【移去】命令。
5,在数据环境中设置关系设置关系的方法为:将主表的某个字段 ( 作为关联表达式 ) 拖曳到子表的相匹配的索引标记上既可 。
如果子表上没有与主表字段相匹配的索引,也可以将主表字段拖动到子表的某个字段上,这时应根据系统提示确认创建索引目录上一页下一页退出
30
6.常用关系属性常用的关系属性有:
● RelationalExpr,用于指定基于主表的关联表达式 。
● ParentAlias,用于指明主表的别名 。
● ChildAlias,用于指明子表的别名 。
● ChildOrder,用于指定与关联表达式相匹配的索引 。
● OneToMany,用于指明关系是否为一对多关系,该属性默认为,,F.”,如果关系为
,一对多关系,,该属性一定要设置为
,.T.”。
目录上一页下一页退出
31
第三节 表单的属性、事件和方法程序一,表单属性表单作为一个对象,也和其它控件对象一样具有属性,表单的属性是表单的特性,可以通过属性窗口或程序语句对其进行设置,表单具有很多属性,其中常用的属性见表 9-5。
二,表单事件表单可以对用户启动或系统触发的事件做出响应,
例如用户可以在表单的 Click事件过程中编写程序,从而单击表单时执行该事件过程 。 表单的常用事件见表 9-
6。 所有事件方法的运行都是由一种特定事件触发的 。
目录上一页下一页退出
32
表 9-5
属性 描述 默认值
AlwaysOnTop 指定表单是否总是位于其它打开窗口之上,F.
AutoCenter 居中显示,F.
BackColor 指定表单窗口的背景颜色 255,255,25
5
BorderStyle 指定表单边框的风格。 3
Caption 显示于表单标题栏上的文本 Form1
Closable 决定表单的右上角的关闭按钮是否有效,T.
DataSession 指定表单中的表是在全局能访问的工作区打开(设置值为 1
)还是在表单自己的工作区打开(设置值为 2)
1
MaxButton 确定表单右上角是否有最大化按钮,T.
MixButton 确定表单右上角是否有最小化按钮,T.
Movable 确定表单是否能移动,T.
Scrollbars 指定表单的滚动条类型。可取值为,0(无),1(水平) 2
(垂直) 3(既水平又垂直)
0
WindowState 指定表单的状态,0(正常) 1(最小化),2(最大化) 0
WindowType 指定表单是模式表单(设置值为 1)还是非模式表单(设置值为 0)。在一个应用程序中,如果运行了一个模式表单,
那么在关闭该表单之前不能访问应用程序中的其他表单
0
目录上一页下一页退出
33
事件名 说 明
Active 当表单变成活动的时候就产生该事件 。
Click 当用户单击表单时就产生该事件,从而执行为该事件编写的代码 。
DblClic
k
当用户双击表单时就产生该事件,从而执行为该事件编写的代码 。
Destroy 当释放该表单时就产生该事件,其代码通常用来进行文件关闭,释放内存变量等工作 。
Init 当创建表单时就产生该事件,其代码通常用来完成一些关于表单的初始化工作 。
Load 在创建表单之前就产生该事件 。
Unload 释放表单时就产生该事件 。
表 9-6 表单的常用事件目录上一页下一页退出
34
三、表单常用方法程序
( 1) Release方法:将表单从内存中释放 。 比如表单有一个命令按钮,如果希望单击该命令按钮时关闭表单,就可以在该命令按钮的 Click事件中包含如下代码:
ThisForm.Release
表单运行时,用户单击表单右上角的关闭按钮,系统会自动执行 Release方法 。
( 2) Refresh方法:刷新表单 。
( 3) Show方法:显示表单 。 该方法将表单的 Visible
属性设置为,T.。
( 4) Hide方法:隐藏表单。该方法将表单的 Visible属性设置为,F.。 与 Release方法不同,Hide只是把表单隐藏,但并不将表单从内存释放,之后可用 Show方法重新显示表单。
目录上一页下一页退出
35
四、表单属性窗口对于表单及表单中的控件,根据用户的需要,可修改其属性值以及事件和方法代码。
在表单的空白处单击鼠标右键,在弹出的快捷菜单中选取,属性,命令,则出现如图 9-15右图所示的属性窗口 。
图 9-15 表单属性窗口目录上一页下一页退出
36
属性窗口共有五个选项卡,其中,全部,选项卡列出了指定对象的全部属性、事件和方法;,数据,选项卡列出了对象如何显示和操纵数据的属性;,方法,选项卡列出了对象的事件和方法;,布局,选项卡显示了所有布局属性;,其它,选项卡显示了对象所属类、类库等其它属性以及用户自定义属性。属性窗口上方有一个对象下拉列表框和若干按钮
1).对象下拉列表框,用于标识当前选定的对象。
2).,?” 按钮 ( 取消按钮 ):取消更改,恢复以前的值 。
3).,?” 按钮 ( 接受按钮 ):用来确认对此属性的更改 。
4).,?x”按钮 ( 函数按钮 ):
打开表达式生成器 。 设置由函数及表达式返回的值 。
5).属性设置框,用于更改属性列表中选定的属性值。
目录上一页下一页退出
37
五、添加新的属性和方法
1,创建新属性向表单添加新属性的步骤如下:
( 2)在“名称”框中输入属性名称
( 3)有选择地在
“说明”框中输入新建属性的说明信息
( 1)在系统菜单中选择【表单】 |【新建属性】命令,打开
“新建属性”对话框,如图 7-13所示。
目录上一页下一页退出
38
2.创建新方法在表单中添加新方法的步骤如下:
( 1) 在系统菜单中选择 【 表单 】 |【 新建方法程序 】 命令,打开如图 的,新建方法程序,对话框 。
( 2) 在,名称,框中输入方法名 。
( 3) 有选择地在,说明,框中输入新建方法的说明信息 。
目录上一页下一页退出
39
六、布局工具栏和调色板工具栏
1,布局工具栏使用布局工具栏可以对表单上的多个控件对象进行位置和形状的调整。其方法是:按住 Shift键后,点击表单上的多个控件,然后单击主菜单栏中的,显示,菜单,
在弹出的菜单中选择布局工具栏选项,则出现如图 9-16
所示的布局工具栏。 左边对齐 顶边对齐 垂直居中对齐 相同宽度 相同大小 垂直居中 置后右边对齐 底边对齐 水平居中对齐 相同高度 水平居中 置前图 9-16布局工具栏目录上一页下一页退出
40
2,调色板工具栏使用调色板工具栏可对表单或所选表单上的控件对象进行着色。在表单上同时选择一个或多个控件对象,然后单击主菜单栏中的,显示,菜单,在弹出菜单中选择调色板工具栏选项,即可弹出如图 9-17的调色板工具栏。
图 9-17 调色板单击此按钮,所选择对象的前景色改变为所选的颜色 。
单击此按钮,所选择对象的背景色改变为所选的颜色单击此按钮,可以打开一个颜色面板 。
目录上一页下一页退出
41
七、运行单表
1.在设计时运行表单在设计时可采用以下方法运行表单文件:
( 1) 在项目管理器窗口中,选择要运行的表单,然后单击,运行,按钮 。
( 2) 在表单设计器窗口中,在系统菜单中选择 【 表单 】
|【 执行表单 】 命令,或单击常用工具栏上的,运行,
按钮 。
( 3) 在系统菜单中选择 【 程序 】 |【 运行 】 命令,打开
,运行,对话框,然后在运行对话框中选择要运行的表单文件,单击,运行,按钮 。
( 4)在命令窗口输入命令,DO FORM <表单文件名 > 。
目录上一页下一页退出
42
2,在程序中调用表单在程序中调用表单可用下列命令:
DO FORM < 表单文件名 > [ NAME 〈 变量 〉 ][LINKED] [WITH 〈 实参 1〉 〈,实参
2〉,… ] [TO 〈 变量 〉 ] [NOSHOW]
● [NAME 〈 变量 〉 ]:如果包含 NAME子句,
系统将建立指定名字的变量,并使它指向表单对象 。 否则,系统将建立与表单文件名相同的变量,并使它指向表单对象 。
目录上一页下一页退出
43
● [LINKED]关键字:如果包含 LINKED关键字,
表单和表单对象变量将链接起来,这时,表单对象将随指向它的变量的清除而关闭 ( 释放 ),
否则,即使变量已经清除 ( 如超出作用域,用
RELEASE命令清除 ),表单对象依然存在 。 但不管有没有 LINKED关键字,指向表单对象的变量并不会随表单的关闭而清除 。
● [TO〈 变量 〉 ]:用于从模式表单返回值 。
● [WITH <参数列表 >]:用于向表单传递参数 。
● [NOSHOW],如果包含 NOSHOW关键字,表单运行时将不显示,直到将表单的 Visible属性被设置为,T.,或者调用表单的 Show方法 。
目录上一页下一页退出
44
八、表单与其它程序模块间的通信
1,将参数传递到表单如果要将参数传递到表单,可按如下操作:
( 1) 在表单的 INIT事件中,用 PARAMETERS定义形参:
PARAMETERS param1,param2
( 2) 在表单的 INIT事件中可以直接访问参数,如果在表单的其它方法或事件中需要使用该参数,必需在表单的 INIT事件中将参数保存到表单的属性或变量中 。
( 3) 运行表单时,使用带 WITH子句的 DO FORM命令,
系统会将 WITH子句的实参值传递到 INIT事件代码的
PARAMETERS子句中的各形参 。
目录上一页下一页退出
45
2.从表单返回值只有模式表单可返回值 。 要从表单返回值可按如下操作:
( 1) 将表单的 WINDOWTYPE属性设置为 1,使表单成为模式表单,
( 2) 在表单的 UNLOAD事件中代码中,包含一个带返回值的 RETURN命令 。
( 3)运行表单时,在 DO FORM命令中包含 TO关键字。
3.直接访问表单对象表单运行后,在其释放前可通过指向表单的变量访问表单对象及表单中所有控件对象。
目录上一页下一页退出
46
九、使用表单集扩充表单
1,创始表单集表单集是一个包含有一个或多个表单的容器 。 可在,表单设计器,中创建表单集,若要创建表单集,在系统菜单中选择 【 表单 】 |【 创建表单集 】 命令 。
2,添加和删除表单添加,在系统菜单中选择 【 表单 】 |【 添加新表单 】 命令 。
删除:
( 1) 在,属性,窗口的对象列表框中,选择要删除的表单 。
( 2) 在系统菜单中选择 【 表单 】 |【 移除表单 】 命令 。
如果表单集只有一个表单,可删除表单集而只剩下表单 。
方法:在系统菜单中选择 【 表单 】 |【 移除表单集 】 命令 。
目录上一页下一页退出
47
第四节 常用表单控件一,表单控件简介表单控件主要在表单中使用,在创建每个新表单时,
根据系统的默认设置都会弹出表单控件工具栏,否则单击,显示,菜单项下的,表单控件工具栏,选项,也将出现如图 9-18所示的表单控件工具栏 。
选定对象 编辑框 复选框 表格 A c t i v e X 控件 容器 按钮锁定标签 命令按钮组 列表框 计时器 线条 超级链接查看类 命令按钮 组合框 图 ActiveX 分隔符文本 选项按钮组 微调控件 页框 绑定控件 形状 生成器锁定图 9-18 表单控件工具栏目录上一页下一页退出
48
表单控件的基本操作
(1)表单控件常见操作 。
① 选择控件:单击控件,被选中的控件四周出现 8个控点 。
要同时选择多个控件时,单击第一个控件,按下 Shist键,
再单击其余控件 。
② 移动控件:用鼠标拖动被选中的控件 。
③ 调整控件大小:拖动被选中控件上的控点 。
④ 复制控件:选中要复制的控件后,再进行,复制,和,粘贴,操作 。
⑤ 删除控件:选择控件后,按 Del键 。
(2)同时添加多个控件单击控件工具栏上的 ( 按钮锁定 ) 按钮,然后单击要添加的控件按钮,就可以在表单上添加多个此控件,直到再次单击
,按钮锁定,按钮
(3)快速添加控件如果从数据环境设计器或数据库设计器或项目管理器中拖动字段、表或视图到表单上,可以快速创建控件。
目录上一页下一页退出
49
二、常用表单控件的属性及事件
1.常用控件的公共属性
name,控件的名称,它是代码中访问控件的标识 ( 表单或表单集除外 ) 。
Fontname,字体名 。
Fontbold,字体样式为粗体 。
Fontsize,字体大小 。
Fontitalic,字体样式为斜体 。
Forecolor,前景色 。
Height,控件的高度
Width,控件的宽度 。 控件的高度和控件的宽度,也可在设计时通过鼠标拖曳进行可视化调整 。
Visible,控件是否显示 。
Enable,控件运行时是否有效 。 如果为,T.,则表示控件有效,否则运行时控件不可使用 。
目录上一页下一页退出
50
2,标签( Label) 控件
1) 标签控件的功能标签主要用于显示固定的文本信息。
2) 标签控件常用属性
caption,指定标签的显示文本 。 可以在设计时设置,
也可以在程序运时设置或修改 。
forecolor,设置标题的字体颜色 。
Backstyle,设置标签的背景是否透明,0透明,1不透明,默认为不透明 。
name,标签对象的名称,是程序中访问标签对象的标识。
Alignment,指定标题控件中显示的对齐方式。
目录上一页下一页退出
51
3,命令按钮( CommandButton) 控件
1) 命令按钮控件功能命令按钮典型地用来启动某个事件代码,完成特定功能,如关闭表单,移动记录指针,打印报表等 。
命令按钮目录上一页下一页退出
52
2),命令按钮控件常用属性
Default,命令按钮的 Default属性默认值为,F.,如果该属性设置为,T.,在该按钮所在的表单激活的情况下,按
Enter,可以激活该按钮,并执行该按钮的 Click事件代码 。 一个表单只能有一个按钮的 Default属性为真 。
Cancel,命令按钮的 Cancel属性默认值为,F.,如果设置为,T.,在该按钮所在的表单激活的情况下,按 Esc键可以激活该按钮,并执行该按钮的 Click事件代码 。 一个表单只能有一个按钮的 Cancel 属性为真 。
Caption,设置按钮的标题 。
Enable,确定按钮是否有效,如果按钮的属性 Enable
为,F.,单击该按钮不会引发该按钮的单击事件 。
对命令按钮的使用最重要的是编写 Click事件代码。
目录上一页下一页退出
53
4.命令按钮组( CommandGroup) 控件
1) 命令按钮组功能命令按钮组是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作其中的按钮。
命令按钮组目录上一页下一页退出
54
2) 命令按钮组常用属性
Buttoncount,命令按钮组中命令按钮的数目 。
Value,默认情况下,命令按钮组中的各个按钮被自动赋予了一个编号,如 1,2,3,等,当运行表单时,
一旦用户单击某个按钮,则 Value将保存该按钮的编号,于是在程序中通过检测 Value的值,就可以为相应的按钮编写特定的程序代码 。 如果在设计时,
给 Value赋予一个字符型数据,当运行表单时,一旦用户单击某个按钮,则 Value将保存该按钮的
Caption属性值 。
Buttons,用于存取命令按钮组中每个命令按钮的数组,
代码中可以通过该数组访问命令按钮组中的各个按钮,
目录上一页下一页退出
55
5,文本框( TextBox) 控件
1) 文本框控件的功能:
( 1) 用于显示或接收单行文本信息 ( 不设置
ControlSource属性 ),默认输入类型为字符型,
最大长度为 256个字符 。
( 2) 用于显示或编辑对应变量或字段的值 ( 设置
ControlSource属性为已有变量或字段名 ) 。
文本框目录上一页下一页退出
56
2) 文本框控件常用属性
ControlSource,设置文本框的数据来源 。 一般情况下,可以利用该属性为文本框指定一个字段或内存变量 。
Value,保存文本框的当前内容,如果没有为
ControlSource属性指定数据源,可以通过该属性访问文本框的内容 。 它的初值决定文本框中值的类型 。 如果为 ControlSource属性指定了数据源,
该属性值与 ControlSource属性指定的变量或字段的值相同 。
PassWordChar,设置输入口令时显示的字符 。
Readonly,确定文本框是否为只读,为,,T.”时,
文本框的值不可修改 。
目录上一页下一页退出
57
【 例 9-4】 创建一个如图所示的登录窗口,并将表单保存为 FORM2。
打开表单设计器,向空白表单中添加二个标签控件、
二个文本框控件、二个命令按钮控件,按所示窗口设置表单、标签和命令按钮控件的 Caption属性。
目录上一页下一页退出
58
双击,登录,按钮,在登录按钮的单击事件中输入如下代码:
if thisform.text1.value="user1” and
thisform.text2.value="123456"
do form mainform
form1.release
else
messagebox("密码或用户名错误 ",0,"提示 ")
endif
目录上一页下一页退出
59
双击,取消,按钮,在取消按钮的单击事件中输入如下代码:
nAnswer=messagebox("你决定退出系统吗?
",4,"提示 ")
DO CASE
CASE nAnswer = 6
thisform.release
CASE nAnswer = 7
messagebox(,请输入用户名和密码
",0,"提示 ")
ENDCASE
目录上一页下一页退出
60
6,编辑框( EditBox) 控件
1) 编辑框控件的功能用于显示或编辑多行文本信息。编辑框实际上是一个完整的简单字处理器,在编辑框中能够选择、
剪切、粘贴以及复制正文,可以实现自动换行,能够有自己的垂直滚动条。
编辑框目录上一页下一页退出
61
2) 编辑框常用属性
ControlSource,设置编辑框的数据源,一般为数据表的备注字段 。
Value,保存编辑框中的内容,可以通过该属性来访问编辑框中的内容 。
SelText,返回用户在编辑区内选定的文本,如果没有选定任何文本,则返回空串 。
SelLength,返回用户在文本输入区中所选定字符的数目 。
Readonly,确定用户是否能修改编辑框中的内容 。
Scroolbars,指定编辑框是否具有滚动条,当属性值为0
时,编辑框没有滚动条,当属性值为2(默认值)时,编辑框包含垂直滚动条。
目录上一页下一页退出
62
7.复选框 (CheckBox)控件
1) 复选框的功能用于标识一个两值状态,如真 (.t.)或假 (.f.)。 当处于“真”状态时,复选框内显示一个对勾,当处于
“假”状态时复选框内为空白。
复选框目录上一页下一页退出
63
2) 复选框常用属性
Value,用来指明复选框的当前状态,如下表,
ControlSource,用于指定复选框的数据源。
属性值 说明
0或,F,(默认值),未被选中
1或,T,被选中
>=2或 null 不确定,只在代码中有效目录上一页下一页退出
64
8,选项组 (OptionGroup)控件
1) 选项组控件的功能选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户单击某个选项按钮时,
该按钮即成为被选中状态,而选项组中的其他选项按钮,
不管原来是什么状态,都变为未选中状态,被选中的选项按钮中会显示一个圆点。
选项框目录上一页下一页退出
65
2) 选项组常用属性
ButtonCount,指定选项组中选项按钮的数目 。
Value,用于指定选项组中哪个选项按钮被选中 。 ControlSource,指定选项组数据源 。
Buttons,用于存取选项组中每个选项的数组 。
目录上一页下一页退出
66
【 例 9-5】 命令按钮组,选项组,复选框,编辑框应用示例,按如图所示设计一个表单,要求:用户单击确定按钮时,在编辑框中显示用户对选项组和复选框的选择 。 并将表单保存为 FORM3
目录上一页下一页退出
67
编写事件代码:
选择命令按钮组,在属性窗口中双击,CLICK
EVENT”属性,系统会打开代码编写器,在代码编写器窗口为,CLICK EVENT”事件输入如下代码:
if thisform.commandgroup1.value=2
thisform.release
else
cstr="你所在城市 "+chr(13);
+thisform.optiongroup1.buttons[thisform
.optiongroup1.value].caption+chr(13)
cstr=cstr+"你的爱好 "+chr(13)
目录上一页下一页退出
68
if thisform.check1.value=1
cstr=cstr+thisform.check1.caption
endif
if thisform.check2.value=1
cstr=cstr+thisform.check2.caption
endif
if thisform.check3.value=1
cstr=cstr+thisform.check3.caption
endif
thisform.edit1.value=cstr
endif
目录上一页下一页退出
69
9.列表框( ListBox) 控件
1) 列表框的功能列表框提供一组条目(数据项),用户可以从中选择一个或多个条目,一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。
列表框目录上一页下一页退出
70
2) 选项组常用属性
RowSourceType,指明列表框数据源的类型 。
RowSource,指定列表框的数据源,两者常用的搭配如表 所示 。
RowSourceType属性值 RowSource属性
0-无在程序运行时,通过 AddItem方法添加列表框条目,通过 RemoveItem方法移去列表框条目无
1-值列出在 RowSource属性中指定所有数据项可以是用逗号隔开的若干数据项的集合,例如
,在设计时,在本属性框中输入:北京、上海
、长沙、武汉
5-数组列出数组的所有元素使用一个已定义的数组名。
6-字段列出一个字段的所有值字段名
7-文件列出指定目录的文件清单磁盘驱动器或文件目录
8-结构列出数据表的结构表名目录上一页下一页退出
71
List,用以存取列表框中数据条目的字符串数组 。 例如,LIST[1]代表列表框中的第一行 ( 第一个数据项 ) 。
ListCount,列表框中数据条目的数目。
ColumnCount,指定列表框的列数。
Value,返回列表框中被选中的条目。
ControlSource,该属性在列表框中的用法与在其他控件中的用法有所不同,在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。
Selected,该属性是一个逻辑型数组,第 N个数组元素代表第 N个数据项是否为选定状态。
MultiSelect,指定用户能否在列表框控件内进行多重选定。
目录上一页下一页退出
72
【例 9-6】列表框的应用:按下图设计一个表单。要求表单运行时,LIST1列表框显示 STUD表的所有字段,单击左箭头按钮时,LIST1中选择的字段加入到 LIST2中。
目录上一页下一页退出
73
操作步骤:
① 按图所示在表单中加入二个列表框,二个标签,二个命令按钮 。
② 在表单的 INIT事件中加入如下代码:
thisform.list1.value=0
thisform.list2.value=0
open database student
use stud
for i=1 to fcount()
thisform.list1.additem(fields(i))
next
close database
目录上一页下一页退出
74
③ 在左箭头按钮 ( COMMAND1) 的 CLICK事件中加入如下代码:
thisform.list2.addlistitem(thisform.list1
.listitem[thisform.list1.value])
thisform.list1.removeitem[thisform.list1.
value]
右箭头按钮( COMMAND2) 的 CLICK事件代码请用户自己编写。
目录上一页下一页退出
75
10.组合框 (comboBox)控件组合框与列表框类似,也是用于提供一组条目供用户从中选择,组合框和和列表框的主要区别在于:
( 1) 对于组合框来说,通常只有一个条目是可见的 。
用户可以单击组合框上的下拉箭头按钮打开条目列表,以便从中选择 。
( 2 ) 组 合 框 不 提 供 多 重 选 择 的 功 能,没有
MultiSelect属性 。
( 3)组合框有两种形式:下拉组合框( Style属性为 0)和下拉列表框( Style属性为 2)。对下拉组合框,用户既可以从列表中选择,也可以在编辑区输入。对下拉列表框,用户只可从列表中选择。
目录上一页下一页退出
76
11.表格 (Grid)控件
1) 表格控件的功能:
表格控件用于浏览或编辑多行多列数据。
表格目录上一页下一页退出
77
2) 表格控件常用属性
RecordSourceType,指明表格数据源的类型,
RecordSource,指定数据的来源,它们取值及含义如表所示 。
RecordSourceType属性值 RecordSource属性
0-表:数据来源由
RecordSource属性指定的表,
该表能被自动打开表名
1-别名数据来源于己打开的表表的别名
2-提示运行时,由用户根据提示选择表格数据源
3-查询数据来源于查询查询文件名
4-SQL语句数据来源于 SQL语句
SQL语句目录上一页下一页退出
78
ColumnCount,指定表格的列数。
LinkMaster,用于指定表格控件中所显示的子表的父表名称。
ChildOrader,指定子表的索引。
RelationalExpr,确定基于主表字段的关联表达式
AllowAddNew,为真,运行时允许添加新记录,
否则不能添加新记录。
AllowRowSizing,为真,运行时用户可改变行高 。
AllowHeaderSizing,为真,运行时用户可改变列宽。
目录上一页下一页退出
79
3) 常用的列属性
ControlSource,指定在列中显示的数据源,
CurrentControl,指定列对象中显示和接收数据的控件,
Sparse,用于确定 CurrentControl属性影响列中的所有单元格还是只影响活动单元格,
注意:
设计时要设置列对象的属性,首先得选择列对象,选择列对象有两种方法:
① 从属性窗口的对象列表中选择相应列,
② 右击表格,在弹出的快捷菜单中选择 【 编辑 】 命令,
这时表格进入编辑状态 ( 表格的周围有一个粗框 ),
用户可用鼠标单击选择列对象 。
目录上一页下一页退出
80
4) 常用的标头 ( Header) 属性列标头也是一个对象,有它自己的属性,方法和事件,设计时要设置标头对象的属性,
首先得选择标头对象,选择标头对象的方法与选择列对象的方法类似 。
Caption属性,指定标头对象的标题文本,显示于列顶部 。 默认为对应字段的字段名 。
Alignment属性:指定标题文本在对象中显示的对齐方式。
目录上一页下一页退出
81
5) 调整表格的行高和列宽一旦指定了表格的列的具体数目,就可以有两种方法来调整表格的行高和列宽 。
① 设置表格的 HeaderHeight和 RowHeight属性调整行高;设置列对象的 Width属性调整列宽 。
② 让表格处于编辑状态下,将鼠标指针置于表格两列的标头之间,这时,鼠标指针变为水平双箭头的形状,拖动鼠标,调整列至所需要的宽度;将鼠标置于表格左侧的第一个按钮和第二个按钮之间,这时,鼠标指针变成垂直双箭头的形状,拖动鼠标,调整行至所需要的高度。
目录上一页下一页退出
82
6) 使用表格生成器设计表格用鼠标左键右击表格,在弹出的快捷菜单中选择【生成器】命令,打开“表格生成器”对话框,如图所示。
“表格项”选项卡:
用于设置表格内显示字段
“样式”选项卡:
指定表格的样式
“布局”选项卡:调整行高、列宽;
设置列标题;选择控件类型
“关系”选项卡:
设置一个一对多关系,指明父表中的关键字段与子表中的相关索引
83
页面控件
Pagecount,指定一个页框对象包含的页对象的数量。
Pages,属性 存取页框中的某个页对象。
Tabs,是否显示页面标签。
Tabstretch,页面标题显示属性( 0,1)。
Activepage,返回页框中活动的页号。
84