Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 8 章 表 单 控 件. 第 8 章 表单控件 [ 主要内容 ] 本章主要介绍 VFP 表单控件工具栏上 21 个基类控件及表单集 的常用属性、方法、事件及主要功能等。 [ 本章重点 ] 输出类、输入类、控制类、多重容器类 [ 本章难点 ] 控制类、多重容器类.

Similar presentations


Presentation on theme: "第 8 章 表 单 控 件. 第 8 章 表单控件 [ 主要内容 ] 本章主要介绍 VFP 表单控件工具栏上 21 个基类控件及表单集 的常用属性、方法、事件及主要功能等。 [ 本章重点 ] 输出类、输入类、控制类、多重容器类 [ 本章难点 ] 控制类、多重容器类."— Presentation transcript:

1 第 8 章 表 单 控 件

2 第 8 章 表单控件 [ 主要内容 ] 本章主要介绍 VFP 表单控件工具栏上 21 个基类控件及表单集 的常用属性、方法、事件及主要功能等。 [ 本章重点 ] 输出类、输入类、控制类、多重容器类 [ 本章难点 ] 控制类、多重容器类

3 表单控件按主要功能分为五类: 输出类控件 : 标签、图象、线条、形状 输入类控件 : 文本框、编辑框、微调控件、 列表框、组合框 控制类控件 : 命令按钮、命令按钮组、复选框 选项按钮组、计时器 容器类控件 : 表格、页框、容器 连接类 :Active X 控件、 Active X 绑定控件、 超级链接

4 8.1 输出类 8.1.1 标签 (label) 1. 标签的创建 利用表单控件工具栏标签按钮 利用字段映像功能从数据环境将字段拖至表单 2. 常用标签属性 Caption 标题文本 Name 标签的名字 Autosize 标签自动调整与标题文本大小一致 WordWrap 标题竖排 BackStyle 标签与背景颜色是否一致 ( 透明 ) BorderStyle 边框样式

5 例 1 在表单添加一个标签控件和两个按钮。实现功能,当标签显示英文 ’hello’ 时按钮 上显示中文 ‘ 你好 ’ ,当标签上显示中文 ‘ 你好 ’ 时按钮上显示英文 ’hello’ ,每次按下按 钮时,当前状态发生一次改变。(当标签上为中文时,文字加粗变斜)对象属性属性值 标签( label1 ) Caption‘hello’ 按钮( command1 ) caption ‘ 你好 ’ 按钮( command2 ) Caption ‘ 退出 ’ ( 2 )对象属性设置如表所示 ( 1 )设计如图所示: 3. 举例

6 command1 的 click 事件代码: if thisform.label1.caption='hello' thisform.label1.caption=' 你好 ' thisform.command1.caption="hello" thisform.label1.fontbold=.t. thisform.label1.fontitalic=.t. else thisform.label1.caption='hello' thisform.command1.caption=' 你好 ' thisform.label1.fontbold=.f. thisform.label1.fontitalic=.f. endif Command2 的 click 事件代码; thisform.release ( 3 )事件代码如下

7 8.1.2. 图像、线条、形状 1. 图像 (Image) (1) 图像的创建 利用表单控件工具栏图像标签 (2) 常用图像属性: Picture :指定图像控件所显示的图像文件的位置及文 件名。 AutoSize :为.T. 时,将根据其显示的图片自动地改变 大小,缺省值为.F. 2. 线条( Line ) (1) 线条的创建 利用表单控件工具栏线条按钮 3. 形状 :Shape 属性 :Curvature( 形状方 0--- 椭圆 99)

8 8.2 输入类控件 8.2.1 文本框( text) 1. 文本框的创建 利用表单控件工具栏文本框按钮 利用字段映像功能从数据环境将字段拖至表单 2. 常用标签属性 (1)Value :指定文本框对象的值,并在框中显示。 Value 值可以为数值型、字符型、日期型、逻辑型 -----0 、(无)、 {} 、.f. (2)ControlSource :设置文本框对象数据源。

9 (3)Format :指定 Value 属性输入时的约束或显示时的格 式。 (4)InputMask :用于确定控件中如何输入和显示数据 (5)Readonly (6) alignment (7)passwordChar 3. 方法选介 SetFocus :对文本框控件设置焦点。

10 4. 事件选介 (1)When : 文本框获得焦点前发生。 (2)GotFocus: 文本框获得焦点时发生。 (3)Valid: 文本框失去焦点前发生。 (4)LostFocus: 文本框失去焦点时发生。 (5)KeyPress: 当用户在文本框中按住并释放一个键盘键 时发生。 (6)InteractivateChange: 当用户用键盘或鼠标改变文本框 对象的值时发生。

11 5. 文本框生成器 生成器是帮助用 户设置常用对象属性 的工具。文本框生成 器包括格式、样式、 值三个选项卡。 文本框生成器

12 例 2. 设计一个密码输入窗口,要求最多允许输入 3 次密码。 对象属性属性值 Form1Caption=dtoc(date) Label1Caption 密码: Text1Passwordchar* Value (无) Command1Caption 确定 Command2Caption 取消 ( 1 )设计如图所示: ( 2 )对象属性设置如表所示 6. 举例

13 Command1 的 click 事件代码: i=i+1 if thisform.text1.value='123456' messagebox(' 欢迎进入本系统 ') thisform.release else if i<3 messagebox(" 密码错,请重试 ") thisform.text1.value='' thisform.text1.setfocus else messagebox(' 密码错,禁止进 入本系统 ') thisform.release endif Form1 的 load 事件代码: public i && 计算输入次数 i=0 ( 3 )事件代码如下

14 8.2.2 编辑框 利用编辑框控件可实现文本数据的输入与编辑。 1. 编辑框的创建 利用表单控件工具栏编辑框按钮 利用字段映像功能从数据环境将备注型字段拖至表 单 2. 常用编辑框属性 (1)Value :用于指定编辑框中的值,其 Value 属性值 的类型只能是字符型。 (2)ScrollBar :滚动条设置(垂直 —2 ,无 --0 )

15 (3)ControlSource :对象的数据源。一般为表的某一备 注型字段。 (4)SelText :返回用户在编辑框中所选定的内容。 (5) Selstart (6)Selength

16 8.2.3 列表框 (List) 和组合框 (Combo) 组合框:下拉组合框和下拉列表框 1. 属性选介: (1)ColumnCount :指定列表框的列数 (2)RowSourceType :指定列表框的数据源 (3)RowSource :指定列表框数据绑定的数据源 (4)ListCount :返回组合框或列表框中列表项的个数 (5)ListIndex :返回组合框或列表框中选定项的顺序号 (6) Selected :用于分辨某一项是否被选中 (7) Value :用于返回在列表中选定的项

17 2. 方法程序: (1) AddItem 当组合框或列表框的 rowsourcetype 为 0 时,使用本方 法程序可以在其列表中添加一个新项 格式: Control.AddItem(cItem[,nIndex][,nColumn]) (2) RemoveItem 当组合框或列表框的 RowSourceType 属性为 0 时,使用本 方法程序可在列表中删除一项。 格式: Control.RemoveItem(nIndex) 说明: nIndex 为数值表达式。取值范围 1~listcount 。

18 8.2.4 微调器 微调控件接受给定范围之内的数值。它只能与数值型 变量或字段数据绑定。 1. 属性选介: (1)value :微调控件的当前值,是数值型。 (2)increment :按一次箭头按钮的增减值,系统默认为 1.00 。 (3)keyboardhighvalue :设定键盘输入数值上限。 (4)keyboardlowvalue :设定键盘输入数值下限。 (5)spinnerhighvalue :设定按钮调整数值上限。 (6)spinnerlowvalue :设定按钮调整数值上限。 (7)controlsource :设定微调控件的数据源。 (8)Inputmask :设置微调控件的输入掩码。

19 8.3 控制类控件 8.3.1 命令按钮 1. 常用属性选介 (1)Caption :设置命令按钮标题 (2)Enabled :用于确定命令钮对象是否响应用户的事 件 (3)Visible :用于确定命令钮对象是可见的或者是隐藏 的 (4)Default :若表单上有不止一个命令钮,可将其中一 个命令按钮设置为缺省命令按钮。 (5)Cancel :若该命令按钮的 Cancel 属性为.T. ,用户按 Esc 键将执行该命令按钮的 Click 事件。 (6)Picture :设置命令按钮上显示图形。 (7)ToolTipText :设置命令按钮的提示文本。

20 2. 常用事件选介 (1)Click :命令按钮的单击鼠标左按钮事件。 (2)RightClick :命令按钮的单击鼠标右按钮事 件

21 n=thisform.text1.value y=' 是素数 ' for i=2 to n-1 if mod(thisform.text1.value,i)=0 y=' 不是素数 ' endif endfor thisform.label2.caption=y 步骤 : 添加两个标签控件, 一个文本框控件, 两个按钮控件. 将文本框的 value 属性改 为 0, 使其可以输入数值型数据. 相应修 改其他控件的 caption 属性. Command2 的 click 事件代码 : Thisform.release 例 3. 判断一个数是否为素数. Command1 的 click 事件代码 : 3. 举例

22 属性名称功能取值 ButtonCount 设置命令按钮组中的命 令按钮数目 2 (缺省值) Value 存储用户所点击命令按 钮的对应序号 1 (缺省值) 8.3.2 命令按钮组 1. 常用属性 2. 举例

23 例 4. 设计一个表单, 在表单上添加按钮组, 使得表单可更换不同颜色. 步骤 : 1.from1 的 caption 属性改为 :’ 换装 ’ 2. 在表单上创建按钮组 commandgroup1 在按钮组上单击鼠标右键, 打开生 成器. 修改如下图 :

24 在 command1-command5 的 click 事件 中添写代码 : thisform.backcolor=this.forecolor 在 command6 中添写代码 : thisform.release

25 8.3.3 复选框 1. 属性简介 2. 事件选介 Click :单击复选框时触发 InteractiveChange :复选框值发生改变时触发。 属性名称功能取值 Style 指定复选框的样式 0- 标准 1- 图形 Value 设置或返回复选框的 状态 0 或.f.- 未选中 1 或.t.- 选中 2 或.NULL.- 灰色 controlsource 指定复选框的数据源

26 属性名称功能取值 ButtonCount 设置选项按钮组中的按钮数目 2 (缺省值) Value 包括数值型和字符型,数值型返 回序号,字符型返回 caption 属性 1 (缺省值) Controlsource 设置数据源 8.3.4 选项按钮组 1. 属性简介 2. 举例 例 5. 浏览与编辑一张表.

27 步骤 : 创建一张表单, 添加一个选项按钮组 控件, 一个复选框控件和两个按钮控件. 添 加 status,score 表到数据环境中. 修改按钮控 件及复选框控件的 caption 属性 ; 打开选项按钮组生成器 : 给命令按钮添加代码 : command1 的 click 事件代码 : if thisform.check1.value=1 brow else browse nomodi noappen nodele endif

28 do case case this.value=1 select score case this.value=2 select status endcase thisform.release command2 的 click 事件代码 : optiongroup1 的 click 事件代码 :

29 8.3.5 计时器控件 : 控制表单自动重复执行一些操作。 1. 属性选介 2. 事件选介 Timer 事件:在 Interval 属性规定的时间间 隔到后,将执行的操作。 属性名称功能取值 Enabled 控制计时器控件是否挂起 Interval 指定计时器控件的 Timer 事件之间的时间 间隔,单位为毫秒。通常将时间间隔设 置为所需精度的一半。 0- (默认值, 不响应) 1-n 响应

30 3. 举例 例 6. 动态显示 ’ 欢迎使用 ’ 并显示当前时间. 对象属性属性值 Form1titlebar 0- 关闭 Timer1interval500 Label1autosize.t. backstyle 透明 fontsize12 caption 欢迎使用 Command 1 caption 关闭

31 thisform.label2.caption=time() thisform.label2.left=mod((thisfor m.label2.left-20+375),375) if thisform.label1.fontsize<=72 thisform.label1.fontsize=thisform. label1.fontsize+12 else thisform.label1.fontsize=12 endif Timer1 的 timer 事件代码 : Command1 的 click 事件代码 : Thisform.release

32 8.4 多重容器类 8.4.1. 表格 1. 基本属性 属性名称功能取值 RecordSource 指定与表格控件建立联系的数据源 RecordSourceType 指定表格的数据源的类型。 ColumnCount 设置表格中的列数 ReadOnly 设置表格的数据是否只读.F.- (默认值)假.T.- 真 DeleteMark 指定表格控件中是否显示删除标记列.F.- 假.T.- (默认值)真 RecordMark 指定表格控件中是否显示记录选择器列.F.- 假.T.- (默认值)真 AllowAddNew 指定是否可以将表格中的新记录添加到表中.F.- (默认值)假.T.- 真 AllowHeaderSizing 指定表格标头高度在运行时刻能否改变.F.- 假.T.- (默认值)真 AllowRowSizing 指定能否人工调整表格中行的大小.F.- 假.T.- (默认值)真

33 2. 列属性 Bound 指定列对象中的控件是否与其数据 源建立联系.F.- 假.T.- (默认 值)真 DynamicFontName 定义一个表达式,当表格控件刷新 时,指定用于显示列对象的字体 DynamicFontSize 定义一个表达式,当表格控件刷新 时,指定用于显示列对象的字体大 小 DynamicForeColor 定义一个表达式,当表格控件刷新 时,指定用于列对象的前景色

34 8.4.2. 页框与页面 1. 页框的创建 利用表单控件工具栏的页框按钮来创建 2. 页框属性选介 : (1)PageCount :指定页框对象所含的页面数。缺省值 为 2 。 (2)TabStretch :指定页框控件不能容纳选项卡时的处 理方式。 (3)PageHeight :指定页框对象的高度,在设计和运行 是只读。

35 (4)PageWidth :指定页框对象的宽度,在设计和运 行是只读。 (5)TabStyle :为 0 (默认值)时,表示所有的页面 标题布满页框的宽度,为 1 时,表示以紧缩方式显示页 面标题,即显示时两端不加空位。 (6)ActivePage :指定页框对象中活动页的页码。 3. 页面属性选介 Caption :指定页面标题,即选项卡标题。

36 例 : 创建一个含有三个页面的 页框的表单,如图所示,分别用 来显示欢迎语、系统日期和当前 时间。 (1) 打开表单设计器,在表单上 创建一个页框 PageFrame1 ,设置 PageCount 属性为 3 。 (2) 激活 PageFrame1 :在本对 象上单击鼠标右键,选择编辑命 令。 (3) 选择 Page1 ,修改 Page1 的 Caption 属性为 “ 欢迎 ” 。向 Page1 添 加一标签 Label1 ,修改其 Caption 为 “ 欢迎您使用! ” , Fontsize 为 24 , Autosize 为真, Fontname 为隶书。

37 (4) 选择 Page2 ,修改 Page2 的 Caption 属性为 “ 日期 ” 。向 Page2 添 加一文本框 Text1 ,修改其 Value=Date() , Dateformat=14( 汉语日期 格式 ) , Fontsize 为 24 , Aligment=2( 居中 ) 。 (5) 选择 Page3 ,修改 Page3 的 Caption 属性为 “ 时间 ” 。向 Page3 添 加一文本框 Text1 ,修改其 Fontsize 为 24 , Aligment=2( 居中 ) 。向 Page3 添加一计时器 Timer1, 设置 Timer1 的 Interval=500 。 (6) 对 Timer1 的 Timer 事件编码如下: This.Parent.Text1.Value=Time() (7) 存盘运行表单

38 8.4.3 Container 容器 1. 属性选介: (1)Enabled :如果 Container 容器的 Enabled 属性为.F. , 则其内的所有对象都不能响应事件。 (2)Speciaeffect :指定其是否有三维外形

39 8.4.4 表单集 表单集是一个包含一个或多个表单的父层次的容 器类控件,它可将多个表单组成一组,以便成组处理。 1. 表单集的创建 (1) 创建步骤 ①创建或打开一个将被包含于表单集中某表单, 假设此表单名为 Form1 。 ②选定 “ 表单 ” 菜单的 “ 创建表单集 ” 命令

40 ②表单的删除 若要从表单集中删除表单,可选定该表单或从属性窗 口中选定要删除表单,再选择 “ 表单 ” 菜单的 “ 移除表单 ” 命 令。 2. 表单集的删除 只有当表单集中仅剩余一个表单时,表单集才可删除。 “ 表单 ” 菜单中的 “ 移除表单集 ” 命令可用于删除表单集。表 单集删除后表单仍存在。

41 3. 表单集的运行与释放 (1) 表单集的运行 运行表单集可用 DO FORM 命令实现 (2) 表单集的释放 方法 1 :使用命令 Release ThisformSet 来释放表单 集。 方法 2 :表单集随最后一个表单的释放而自动释放, 此时表单集的 AutoRelease 属性为.T. 。

42 例 : 用表单集对 STAFF 、 TEACH 、 COURSE 三表建立联动查徇。 (1) 打开表单设计器,在数据环境中依次添加 STAFF 、 TEACH 、 COURSE 三表,并通过拖拉连线建立关联。 (2) 创建表单集:选定表单菜单的 “ 创建表单集命令 ” 。 (3) 向表单集添加两个表单:选定表单菜单的 “ 添加表单命令 ” 两 次,表单设计器窗口中将出现 Form2 、 Form3 表单。 (4) 将数据环境中 STAFF 表、 TEACH 表、 COURSE 表的标题栏 依次拖放到 Form1 、 Form2 、 Form3 上,调整三个表单的大小和位置, 使它们并排。 (5)Form1 的 UnLoad 事件代码编写如下: THISFORMSET.Release && 使表单集随着 Form1 的释放而 释放 (6) 将表单集存为 LHCX.SCX, 结果如图

43

44 8.5 连接类 8.5.1.ActiveX 绑定控件 ActiveX 控件用于直接在表单上插入 ActiveX 控件与 OLE 对象。而 ActiveX 绑定控件则实现在表单上显示表中 通用字段的数据。 1.OLE 对象 OLE 技术全称是 “ 对象的嵌入与链接 ” ,在 Windows 中 支持 OLE 技术的应用程序,可借助它进行数据交换。

45 2. 属性选介 (1)ControlSource :设置 ActiveX 绑定控件的数据源, 必 须设置。 (2)Stretch :指定如何对图像尺寸进行调整,以放入一 个 OLE 对象。 (3)AutoVerbMenu :指定在运行时, ActiveX 绑定对象 有没有快捷菜单 2. 超级链接 “ 超级链接 ” 对象的功能主要通过一个方法程序 Navigatito 实现。它允许用户指定一个网址,调用它 VFP 就会 启动浏览器,并根据指定的网址进入相应的网站显示网页。

46 例 : 在表单上创建一个命令钮, 要求表单运行时单击该命令钮可 跳转到微软网站。 (1) 创建如图表单。 (2)Command1 的 Caption 属性 设置为:微软网站 (3)Command1 的 Click 事件代 码编写如下 : THISFORM.Hyperlink1.Navigateto ( “ www.sina.com.cn ” )


Download ppt "第 8 章 表 单 控 件. 第 8 章 表单控件 [ 主要内容 ] 本章主要介绍 VFP 表单控件工具栏上 21 个基类控件及表单集 的常用属性、方法、事件及主要功能等。 [ 本章重点 ] 输出类、输入类、控制类、多重容器类 [ 本章难点 ] 控制类、多重容器类."

Similar presentations


Ads by Google