710 likes | 864 Views
第 9 章 表单和控件设计. 表单( Form )是系统中用户见到的主要界面。使用表单,可让用户在熟悉的界面下查看数据或将数据输入数据库。 表单是应用程序中最重要的一部分内容,也是 VFP 程序设计中的一个重点。. 表单概述. 表单( Form )是系统中用户见到的主要界面。使用表单,可让用户在熟悉的界面下查看数据或将数据输入数据库。 表单提供不仅仅是一个界面,它还提供丰富的对象集,这些对象能响应用户(或系统)事件,使用户尽可能方便和直观地完成信息管理工作。 表单的设计是可视化编程的基础。
E N D
第9章 表单和控件设计 • 表单(Form)是系统中用户见到的主要界面。使用表单,可让用户在熟悉的界面下查看数据或将数据输入数据库。 • 表单是应用程序中最重要的一部分内容,也是VFP程序设计中的一个重点。
表单概述 表单(Form)是系统中用户见到的主要界面。使用表单,可让用户在熟悉的界面下查看数据或将数据输入数据库。 表单提供不仅仅是一个界面,它还提供丰富的对象集,这些对象能响应用户(或系统)事件,使用户尽可能方便和直观地完成信息管理工作。 表单的设计是可视化编程的基础。 表单是一种容器类,是一个或多个页面的集合。表单可以包含用以显示并编辑数据的控件。
9.1 表单的建立 表单和控件是面向对象的程序设计中最基本的可视化对象,在建立表单的过程中,要定义它们的属性,编写事件或方法的代码。创建表单可通过表单设计器和表单向导两种途径实现。 9.1.1 使用表单设计器创建表单
1.命令方式 Create Form <表单文件名>.scx 2.菜单方式 ⑴ 在主菜单中,选择“文件→新建”,进入新建窗口; ⑵ 在“新建”窗口中,选择“表单”,单击“新建文件”按钮。 ⑶ 在“文件”菜单项中,单击“保存”命令,输入文件名 3.在“项目管理器”中创建表单 在“项目管理器”中选择“文档”标签下的“表单”,然后单击“新建”按钮。
9.1.2 利用表单向导创建表单 (1)、在VFP系统的主菜单中单击“文件”菜单中的“新建”菜单项,进入“新建”窗口。
第二步 (2)、在“新建”窗口中单击“表单”按钮,再单击“向导”按钮,进入“向导选取”窗口,如左图所示。
第三步 (3)、在“向导选取”窗口单击“表单向导”项,进入“表单向导”步骤1-字段选取窗口,如左图所示。
第四步 (4)、在字段选取窗口,先选择作为数据资源的数据库或表。最后单击按钮“下一步”,进入“表单向导”步骤2-选择表单样式窗口,如左图所示。
第五步 (5)进行样式选择,是来指定表单上控件的外观。 第六步 (6)、在排序次序窗口,可在“可用的字段或索引标识”列表框中选择一到三个字段或一个索引标识来排序记录。
第七步 (7)、在完成窗口,首先在“请键入表单标题”文本框中,键入表单标题;然后选择表单的保存方式。最后单击“完成”,保存表单。
9.2.2 表单的数据环境 表单上的对象和库中的数据的联系是通过数据环境完成的。数据环境就是指与表单相关的数据的集合,它指明表单的数据的来源,把表单控件对象的ControlSource属性设置为表的字段,这样就可以显示该字段的记录。 数据环境操作主要有如下几个内容: 打开数据环境; 设置数据环境属性; 向数据环境添加表; 设置数据环境中表的属性; 建立数据环境中表的关系。
2. 创建一对多数据表单 • 与前面不同的是: • 从父表中选择字段 • 丛子表中选择字段 • 按向导提示步骤操作即可
9.1.3 表单的修改及运行 • 在表单设计器中进行修改; • 在项目中进行修改; • 用命令方式修改: Modify Form <表单文件名>.scx
9.2 表单与控件 • VFP 6.0提供了大量的表单控件,其中大部分控件具有相同的属性、事件和方法,它们既可以通过属性编辑器进行设置或编辑。也可以在程序执行过程中创建或改变控件的属性,调用控件的方法程序
使用表单设计器创建单表表单 表单设计器制作表单的逻辑思路: • 在表单上建立显示控件,并调整好位置 • 把控件和数据库中的数据绑在一起
9.2.2表单的数据环境 • 在设计数据库操作表单时,需要为表单建立数据环境。数据环境中包含与表单有联系的表和视图以及表之间的关系,它是链接表单与表或视图文件的通道。一般情况下,添加到数据环境中的表或视图,随着表单的打开或运行而打开,并随着表单的关闭或释放而关闭。可用数据环境设计器来设置表单的数据环境。
常用属性有: • AutoOpenTable:当打开表单集、表单或报表时,是否自动打开数据环境中指定的表和视图,默认值是.T.。 • AutoCloseTable:当关闭表单集、表单或报表时,是否关闭数据环境中指定的表和视图,默认值是.T.。 • DateSourceType:指定数据源的类型。
添加表单控件的方法 使用表单控件工具条向表单中添加控件对象 用生成器向表单中添加控件对象 用表单生成器向表单中添加控件对象 利用数据环境向表单中添加控件对象 利用项目管理器向表单项中添加控件对象
1、使用表单控件工具条向表单中添加控件对象1、使用表单控件工具条向表单中添加控件对象 • 如果要建立一个输入文本框,按下表单控件条上的 按钮,在表单上一划,一个输入框就建立了,然后调整输入框的大小和在表单上的位置. • 如果要建立多个同样的标签控件对象,可以用按钮锁定法,先按下表单控件工具条上的 按钮,再按下表单控件工具条上的 按钮,再在表单上重复划动鼠标. • 如果某些控件对象要显示数据记录,就需要设置该控件对象的ContralSource属性,与字段进行绑定。
9.2.3常用表单控件的属性 • 面向对象的程序设计(OOP) • 1、对象 • 2、属性 • 3、事件 • 对象引用规则: • This 表示当前对象 • Thisform 表示当前表单 • Thisformset 表示当前表单集 • 对象引用方法: • 如:this.caption thisform.command.caption
对象的特征 对象都具有自己的属性(Property)、事件(Event)、方法(Method)。 不同类产生的对象具有不同的属性事件方法。 1、属性 是指对象的特征,每个对象都有自己的属性如表单具有标题(Caption)、背景(Backcolor)、可移动(Movable)等属性。它们有一个对应值,可在属性窗口设置,也可在运行时改变。 如:thisform.caption=“数据维护” thisform.movable=.f.
属性窗口的使用 1、属性窗口:显示表单中控件的属性、事件、方法等。 2、对象选择器:在属性窗口的最上方,可以在此选择要设置的对象。对象采用分层方式显示,体现包含关系 3、对象属性设定框 左边三个按钮分别为:取消属性设定,属性设定接受,启用函数按钮 属性框的赋值有直接输入、从下拉框中输入或启动对话框等方式
表单属性 1、在表单上点鼠标右键—属性,即出现表单属性框,改变里面的内容即可改变表单 2、Caption:用来改变表单的标题 3、AlwaysOnTop:其值为真时,本窗口总是在其它窗口之上 4、BackColor:其值决定窗口颜色
表单属性 5、Closable:默认为真,即可关闭。当为假时,要小心窗口不能关闭 6、ControlBox:为真,为假时整个标题栏的控制按钮和图标消失,小心。 7、Height/Width/Left/Top用来决定窗口位置 8、Icon:设置标题栏图标 9、MaxButton/MinButton/Movable
表单属性 10、Picture:给表单加上图片,一般不在此处加背景图片,因为图片太大或太小时会被剪切 11、visible:为假时,运行时不可见,编程修改其值可决定表单的可见性 12、WindowState:其值最大时,决定窗口位置的属性设置无效 13、ShowTips:要使鼠标移到某对象上系统自动蹦出提示,该值必须为真
14、Fontname:字体名 15、Fontsize:字体大小 16、Fontbold:字体加粗 17、Forecolor:文本前景色 18、Showwindow:设计表单运行后在屏幕的位置
9.2.4 表单控件的事件和方法 事件 事件是一种预先定义好的特定动作,由用户或系统激活,在多数情况下,是由用户的交互操作产生。事件作用于对象。 如:单击鼠标事件(click)、调入事件(load)、初始化事件(init)等。 我们需要对事件编写对应代码,当系统响应用户的动作时,将自动触发事件对应的代码。
3、方法 方法是指对象执行的一个操作,是与对象相关联的过程,它是对象的函数成员。 方法程序可以出现在对象的事件中,也可独立于事件单独存在。如:Box,Circle,Hide,Release等 方法程序可以无限扩展,而事件集合是固定的,用户不能创建新的事件,却可创建新的方法和属性。 方法的表示:如 thisform.release thisform.show
例:在表单集中实现两个表单的切换、隐藏。 步骤:1、打开表单菜单,点击创建表单集,点击添加两张表单form1和form2 2、在表单form1和form2中各设置一个按钮,用来完成切换功能 3、打开代码窗口,设置form1的按钮click事件代码(thisform.hide和thisformset.form2.show);再设置form2的click事件代码。 4、在其中任意一个表单上添加一按钮,释放两表单。(thisformset.form1.release thisformset.form2.release)
本次课的教学内容: 9.3 基本表单控件 本次课的教学目的与要求: 1、标签、文本框、编辑框、微调按钮 2、列表框、计时器、图像 本次课的教学重点与难点: 重点:属性、事件代码的编写 难点:事件代码的编写 讲授课时:2学时
9.3.1标签控件 标签用以显示文本。显示内容可通过Caption属性设置。 一般被设置的属性为: 1、Caption:可通过代码设置在运行时改变其值,注意数据类型只能是字符型 2、Autosize:自动调整标签大小 3、Alignment:标签文本在控件中的对齐方式 0:左对齐(默认方式); 1:右对齐;2:居中对齐
4、BackColor:标签背景色 5、BackStyle:设置标签是否透明,如果透 明,则BackColor设置无效 6、Font开头的属性用来设置显示内容的字体属性,如红色宋体字等 7、ForeColor:标签显示内容的颜色 8、标签位置设定Left/Top/Width/Height,一般用布局工具栏 9、Visible:标签隐藏否,可编程控制
标签控件事件方法 1、Click事件:点击该标签时发生,在里面写上你要执行的代码, 2、DblClick事件:双击该标签时发生 3、MouseMove事件:当鼠标移动到该标签上时发生
左边对齐 右边对齐 顶边对齐 底边对齐 垂直居中对齐 水平居中对齐 相同宽度 相同高度 相同大小 水平居中 垂直居中 置前 置后 控件布局 选取多个控件时设置 选定单个控件也可设置
【例9.1】按图9-14所示,设计一个“教师信息管理系统”应用程序开始界面。【例9.1】按图9-14所示,设计一个“教师信息管理系统”应用程序开始界面。 步骤如下: ⑴创建一个新表单;设置其Caption属性值为“教师信息管理系统”。 ⑵选择“显示→表单控件工具栏”;用鼠标左键单击“标签”按钮,在表单上单击或拖放鼠标,放置三个标签。 ⑶在“属性”窗口中分别设置三个标签的属性: Label1:AutoSize设置为.T.,其作用是指定是否自动调整控件大小以容纳其内容;Caption设置为“教师信息管理系统”;字体、大小及控件位置依据自己的喜好而定; Label2:Caption设置为:版权所有(C) 2004,字体:隶书12磅; Label3:Caption设置为:洛阳师范学院软件开发小组,字体:楷体12磅; ⑷执行表单,显示结果如图9-14所示。
9.3.2文本框控件 “文本框”控件(TextBox)和“标签”控件有相似之处,但二者使用时有很大区别。“文本框”控件是变量输入输出的焦点区域。在数据表操作中,主要用于对非备注型和通用型字段的输入输出,或给内存变量赋值等操作,它有自己的数据源(ControlSource)。它的数据源可以是表中的字段或内存变量,用户若要通过文本框对字段变量或内存变量进行操作,必须在ControlSource属性中指定与它联系的变量作为数据源。
利用它可在内存变量、数组元素或非备注字段中输入或编辑数据。利用它可在内存变量、数组元素或非备注字段中输入或编辑数据。 一般被设置的属性为: ControlSource:为文本框指定一个字段或变量。运行时显示变量值,也可修改。 Value:用户输入的值,如果要限制输入类型,设计时先赋初值。如初值为{},则只能输入日期 PasswordChar: 若文本框输入密码,输入时不想让别人知道,可输入指定字符。如“*”,真正内容保存在Value中。
InputMask:指定在一个文本框中如何输入和显示数据,即模式匹配格式。如此处输入6个“!”,则只能输入6个大写字母。InputMask:指定在一个文本框中如何输入和显示数据,即模式匹配格式。如此处输入6个“!”,则只能输入6个大写字母。 Centruy、Hours、Seconds和DateFormat设置日期格式
文本框控件事件 1、When事件:当光标进入文本框时发生 2、Valid事件:当光标离开文本框时发生 3、SetFocus事件:使文本框获得焦点
例2 设计一个登录界面,指定用户名为user1,password为:1234 步骤: 1、创建表单,添加一些控件 2、设置Caption属性,命令按钮的default属性, 文本框的PasswordChar还可设置其Inputmask 3、为确认命令按钮添加Click事件 4、如要统计输入次数,需添加一个属性存储计数值,并将其默认值设置为数值 mao11
9.3.3 计时器控件 计时器控件(Timer)是用系统时钟来控制某些有规律的操作,在运行时是不可见的。计时器控件有两个主要属性“Enabled”和“Interval”。“Enabled”用于设置计时器的打开(取值为真)与关闭(取值为假);“Interval”用于定义计时器事件触发的时间间隔(单位为毫秒)。其主要事件是Timer Event,表示经过Interval属性设定的毫秒时间间隔后发生。