




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第6章 表单设计与应用,6.1面向对象的概念 6.1.1对象与类 6.1.2子类与继承 6.2Visual FoxPro基类简介 6.2.1Visual FoxPro基类 6.2.2容器与控件 6.2.3事件 6.3创建与运行表单 6.3.1创建表单 6.3.2运行表单 6.4表单设计器 6.4.1表单设计器环境 6.4.2控件的操作与布局 6.4.3数据环境 6.5表单属性和方法 6.5.1常用的表单属性 6.5.2常用的事件与方法 6.5.3添加新的属性和方法,6.6基本型控件 6.6.1标签 6.6.2命令按钮 6.6.3文本框 6.6.4编辑框 6.6.5复选框 6.6.6列表框
2、6.6.7组合框 6.7容器型控件 6.7.1命令组 6.7.2选项组 6.7.3表格 6.7.4页框 6.8自定义类 6.8.1使用类设计器创建类 6.8.2类库管理 6.8.3在创建表单时使用自定义类,2,本章要求 1.理解对象、类、属性、事件与方法等基本概念 2.懂得建立对象、修改对象属性、进行对象事件和方法的设置并懂得如何调用对象 3.掌握通过表单设计器创建表单和修改表单,并懂得如何使用命令调用和运行表单。 4.掌握“标签”控件、 “命令按钮”控件、“文本框”控件、“组合框”控件、“单选按钮”控件、“复选框”控件、 “表格”控件的创建。 5.懂得如何进行常用属性的修改以及编写事件与方法
3、。,3,6.1面向对象的概念,Visual FoxPro不但支持传统的面向过程的程序设计,而且也提供了面向对象的可视化程序设计的功能。 6.1.1 对象与类 1. 对象(Object) 广义的对象可以是现实世界中的任何实体,例如一扇窗户、一辆汽车、一台计算机、一部电话等都是对象。 这里所指的对象主要是屏幕上的窗口(表单)、对话框及窗口和对话框中的按扭、文本框、列表、复选框、表格、图片等 对象都具有一定的属性、特征,并可以产生一定的行为。对象的核心概念就是通常所说的封装性、继承性和多态性。,4,6.1面向对象的概念 类(Class) 类一组对象的属性和行为特征的抽象描述。类是具有共同属性、共同操
4、作性质的对象的集合。 类是对象的抽象描述;对象是类的实例。类是抽象的,对象是具体的。 基类:分为容器类(Container)和控件类(Controler)。 类的特性 继承性(Inheritance):指通过继承关系利用已有的类构造新类。表达了一个从一般到特殊的进化过程 封装性(Encapsulation):指类的内部信息对用户是隐蔽的。在类的引用过程中,用户只能看到封装界面上的信息, 只有程序开发者才能了解类的内部信息 多态性:在程序中同名但是具体功能不同的方法可以共存。实现多态性的两种方法:“覆盖”和“重载”,5,6.1面向对象的概念 6.1.2子类与继承 继承在基于现有的类创建新类时,新
5、类继承了现有类的方法和属性。 一个子类的成员一般包括: 从它的父类继承的成员,包括属性、方法 由子类自己定义的成员,包括属性、方法,6,6.2 Visual FoxPro基类简介 6.2.1Visual FoxPro基类,7,用户可以基于基类生成所需的对象,也可以扩展基类创建自己的类。 每个Visual FoxPro基类都有自己的一组属性、方法和事件。当扩展某个基类创建用户自定义类时,该基类就是用户自定义类的父类,用户自定义类继承该基类中的属性、方法和事件。 表6-2列出了Visual FoxPro基类的最小属性集,不管哪个类,都包含这些属性。,访问对象属性以及调用对象方法的基本格式如下: .
6、 . ( ) ,8,6.2 Visual FoxPro基类简介,Visual FoxPro中的类一般可分为两种类型:容器类和控件类。相应地,可分别生成容器(对象)和控件(对象)。 控件类是可以包含在容器类中的基类。 容器类是包容其他类的基类,相应地可分别生成容器(对象)和控件(对象)。,9,控件是一个可以以图形化的方式显示出来并能与用户进行交互的对象,例如一个命令按钮、一个文本框等。 容器可以被认为是一种特殊的控件,它能包容其他的控件或容器,例如一个表单、一个表格等。 控件通常被放置在一个容器里。,10,在对象的嵌套层次关系中,要引用其中的某个对象,需要指明对象在嵌套层次中的位置。此时,经常会
7、用到如表6-4所示的几个属性或关键字。,容器层次中的对象引用示例 ThisFormSet.frm1.cmd1.Caption=OK ThisForm.cmd1.Caption=OK This.Caption=OK This.Parent.Caption=OK,11,6.2.3 事件(Event) 事件是由系统预先定义并且能被对象识别和响应的动作。例如:用户单击、双击或移动鼠标等操作。 事件可以由系统或程序代码引发,如时钟变化、属性被修改等,也可以由用户引发,如单击鼠标或按下个按键。 事件代码:每当事件发生时,系统便会执行相应的代码来响应和处理这一事件,这些在事件发生时由系统自动执行的程序代码就
8、是事件代码。 事件可由系统引发,如生成对象时,系统引发Init事件,对象识别该事件,并执行相应的Init事件代码。事件也可由用户引发,如用户鼠标单击程序界面上的一个命令按钮引发Click事件,并执行Click事件代码。,12,与方法集可无限扩展不同,事件集是固定的,用户不能定义新的事件。 VFP基类的最小事件集 事件 说明 Init 当对象生成时引发 Destroy 当对象从内存中释放时引发 Error 当方法或事件代码出现运行错误时引发 事件代码既能在事件引发时执行,也可像方法一样被显示调用。比如,产生一个表单对象oForm时,系统会自动执行Init事件代码,但用户也可显示调用该表单的Ini
9、t事件代码: oForm.Init,13,说明:(1)事件代码一般是由系统在事件发生时自动执行的,但也可以由用户按下面格式显示调用 . (2)在容器对象的嵌套层次中,事件的处理遵循独立性原则,即每个对象识别并处理属于自己的事件。例如,当用户单击表单中的一个命令按钮时,将引发命令按钮的Click事件,而不会引发表单的Click事件。如果没有指定该命令按钮的Click事件代码,那么单击此命令按钮不会有任何反应。 (3)上面独立性原则的一个例外,它不适用于命令按钮组和选项钮组。 在命令按钮组或选项钮组中,如果为按钮组编写了某事件代码,而组中的某个按钮没有单独设置与该事件关联的代码,那么当这个按钮的这
10、一事件发生时,将执行按钮组的事件代码。,14,例:事件触发示例,15,6.3创建与运行表单 6.3.1创建表单 1用表单设计器 用表单设计器创建非数据表单非常方便,方法有三: 方法1:在项目管理器环境下调用 方法2:菜单方式调用: 方法3:命令方式调用:create form 用表单向导 一般用来创建有数据环境相联系的数据表单。 表单文件的扩展名是.scx,表单备注文件的扩展名是.sct。 3.修改已有的表单利用表单设计器(MODIFY FORM) 在“项目管理器”中选择“文档”选项卡,激活表单名称,选择“修改”按钮进入“表单设计器”,在表单“属性窗口”进行属性修改,如字体大小、颜色等。,16
11、,6.3创建与运行表单 6.3.2运行表单(DO FORM) 1在表单设计器中运行表单 打开“文件”菜单,选择“打开”;在“打开”窗口中,输入“表单名”;在“表单设计器”窗口,单击鼠标右键,在“表单”快捷菜单中,选择“执行表单”。 2以命令方式运行表单 命令格式如下: DO FORM 表单.scx,17,6.4表单设计器 6.4.1表单设计器环境,1.表单设计器窗口内含正在设计的表单的表单窗口。 2.属性用来为各种对象设置属性,其中提供了当前对象的各种属性名称和缺省值。 3.表单控件工具栏内含控件按钮。 4.表单设计器工具栏 5.表单菜单其中的命令主要用于创建、编辑表单或表单集,18,6.4表
12、单设计器 6.4.2控件的操作与布局 1.控件的基本操作 选定控件对控件进行任何操作都要先选定控件。 方法:用鼠标单击控件即可;或在“属性”窗口的对象列表中选择某个控件名 同时选定多个控件:用鼠标拖出矩形框或配合Shift键逐个单击控件。当选定多个对象时,属性窗口的对象列表中显示为“多重属性”,属性列表中显示所有选定对象的共有属性。可以同时编辑它们的共有属性。 注意:容器类对象内的控件选择方法:右击容器类对象,快捷菜单中选择“编辑”命令,则容器类对象处于编辑状态,此时可以在容器对象内选择其他控件。,19,6.4表单设计器 6.4.2控件的操作与布局 1.控件的基本操作 控件大小和位置调整 无论
13、是选定单个控件还是多个控件,都可以用下面的方法设置: 用鼠标:选中控件后,将鼠标拖动控件的控制点,可以改变控件的大小,按住控件的其他位置拖动可以改变控件在表单中的位置。 用键盘:选定控件后,在表单上按动方向键可以移动控件对象的位置。如果按下Shift键同时按方向键可以改变控件的大小。 在属性窗口修改控件相关属性:即Left、Right、Height和Width四个属性,修改其数值。,20,6.4表单设计器 6.4.2控件的操作与布局 1.控件的基本操作 控件的复制和删除: 复制控件前先选定控件,接着选择“编辑”菜单中的“复制”命令,然后在“编辑”菜单中选择“粘贴”命令,可以复制出新控件。如果要
14、删除控件,首先选定要删除的控件,然后按Del键或者从“编辑”菜单中选择“清除”命令。 2.控件布局 要完成对表单上选定控件的格式化处理,其方法: 打开“布局”工具栏:单击“表单设计器”工具栏中的“布局工具栏”按钮, 见图9-13。“布局”工具栏上的按钮功能见p184表6.7。 或利用“格式”菜单:打开表单设计器以后,会增加一个“格式”菜单,21,6.4表单设计器 6.4.2控件的操作与布局 3.设置TAB键次序 在交互方式下设置Tab键次序的方法: 进入Tab键次序设置状态,每个控件左上方会出现蓝色小方块,里面显示该控件的Tab键次序。单击某个控件或控件左上方的小方块,该控件将成为Tab键次序
15、的第一个控件。按希望的次序依次单击其他控件。 在表设计器中: 选择“显示菜单/Tab键次序”命令 或单击“表单设计器”工具栏的“设置Tab键次序”按钮,进入Tab键次序设置状态,进行设置 注意:如果要设置表单上某个容器内各个控件的Tab键次序,需要先要让该容器控件进入编辑状态,再按照上述方法进行设置。,22,6.4表单设计器 6.4.2控件的操作与布局 3.设置TAB键次序 在列表方式下设置Tab键次序的方法: 先选择列表方式:“工具菜单/选项”命令,在“选项”对话框的“表单”选项卡选择。再选择“显示菜单/Tab次序”命令或者单击“表单设计器”工具栏中的“设置Tab键次序”按钮弹出“Tab键次
16、序”对话框,如图9-16所示。拖动对话框上控件名前的按钮就可以完成Tab键次序的设置工作。,23,6.4表单设计器 6.4.3数据环境 在数据库应用系统中,建立表单的最终目的是使用户能在表单上的交互操作,以达到操作数据的目的。当建立表单或报表时系统会自动建立数据环境对象。数据环境是Visual FoxPro系统提供的一种容器类,它本身并不保存表中的数据,但它可以包含表和关系。 通过在数据环境中添加表和关系,设置相关的属性,就可以实现表和表单的有机结合。 1.设置数据环境 数据环境的设计是在表单设计时完成的。 打开数据环境设计器: 在表单设计器中右击,选择快捷菜单中的“数据环境”命令或者在“显示
17、菜单/数据环境”命令或者用鼠标单击表单设计器工具栏上的“数据环境”按钮。,24,6.4表单设计器 6.4.3数据环境 数据环境是一个对象,有自己的属性、方法和事件。数据环境常用的属性如表所示。,25,6.4表单设计器 6.4.3数据环境 2.在数据环境中添加表或视图 操作方法如下:打开数据环境设计器从“数据环境菜单/添加”命令或右击“数据环境设计器”,快捷菜单中选择“添加”命令. 在“添加表或视图”对话框选择所要添加的数据表或视图。也可以打开数据库设计器,直接将表或视图拖动到数据环境中。,26,6.4表单设计器 6.4.3数据环境 3.在数据环境中移去的表或视图:在数据环境设置器中选择要移去的
18、表或视图然后从“数据环境”菜单中选择“移去”命令或右击“数据环境设计器”,快捷菜单中选择“移去”命令或直接按DELETE键将表或视图从数据环境中移去。 4.在数据环境中设置关系 如果添加到数据环境设计器中的表在数据库中具有永久关系,此关系也会自动添加到数据环境中。如果表中没有永久关系,用户可以在数据环境中设置。 在数据环境中设置关系方法: 可以将字段从主表拖动到相关表相匹配的索引标识上。或将字段从主表拖动到相关表的字段上 说明:如果和主表字段对应的相关表没有索引标识,系统将提示用户创建索引标识。,27,6.4表单设计器 6.4.3数据环境 5.在数据环境中编辑关系 关系是数据环境中的对象,也有
19、自己的属性、事件和方法。要设置关系的属性,可以单击表示关系的连线选定关系,然后在“属性”窗口中选择关系属性进行设置。常用的关系属性见表。,6.向表单添加字段,28,6.4表单设计器 6.4.3数据环境,6.向表单添加字段,方法一:如果要把控件和数据结为一体,可以设置控件的 ControlSource 属性。如果绑定表格和数据,则需要设置表格的 RecordSource 属性。如果创建一对多表单,则需要同时设置 ControlSource 属性和 RecordSource 属性。 方法二:从“数据环境设计器”窗口直接将字段拖入表单。,29,6.5表单属性和方法 6.5.1常用的表单属性,30,6
20、.5表单属性和方法 6.5.2常用的事件与方法 事件:是一个可以由对象识别的动作。 用户通过编写相应的事件代码(事件过程)对事件进行响应,当对象的事件发生时,该事件代码就被自动执行。如在表单中单击鼠标右键,会触发表单的RightClick事件,执行RightClick的事件代码。 方法:是VFP事先定义好的用来完成特定任务的过程。它允许在事件过程或其他的方法过程中调用,这样的过程称为方法。 例如:通过表单的Circle方法可以在表单上绘制一个圆。 在表单的单击事件中写入代码: thisform.circle(80,180,125) 在表单的右击事件中写入代码: thisform.circle(
21、100,180,125) 对于不同的对象,有不同的方法集。 对象的事件代码和方法代码都列在属性窗口的“方法程序”选项页中。,31,6.5表单属性和方法 6.5.2常用的事件与方法,32,6.5表单属性和方法 6.5.2常用的事件与方法 添加程序代码在代码编辑窗口中进行。 1.启动代码编辑窗口的方法: (1)从“显示”菜单中选择“代码”命令 (2)在表单上单击鼠标右键,从快捷菜单中选择“代码”项 (3)在“属性”窗口的“方法程序”选项卡中双击方法名 (4)双击表单或其他对象 (5)从表单设计器工具栏中按下“代码窗口”按钮 2.代码窗口中的操作: 在“对象”下拉列表中选择对象 在“过程”下拉列表中
22、选择需要的事件过程和方法过程名 其中用户已经定义的过程名用粗体显示。 选择了需要的过程后就可以在窗口中添加或修改自己的程序代码。 3.表单事件的触发有一定的顺序 如运行表单时首先引发Load事件(Load事件在表单对象建立之前引发) 然后再引发表单的Init事件(Init事件在表单对象建立时引发),在此之前将先引发表 单所包含控件的Init事件,可以用来设置进入表单时所作的操作。 而表单的Destroy事件在释放表单时引发,然后引发表单控件的Destroy事件 最后引发表单的Unload事件。,33,例6.3在例6.2建立的表单myform中添加一个命令按钮,然后按表6.11为表单和按钮设置相
23、应的事件代码,最后运行表单并观察结果。,wait 引发表单Load事件! window wait 引发表单Init事件! window wait 引发表单Destory事件! window wait 引发表单Unload事件! window wait 引发按钮Init事件! window wait 引发按钮Destory事件! window,34,6.5表单属性和方法 6.5.3添加新的属性和方法 1.创建新属性 2.创建新方法 3.编辑方法或事件代码,P191 例6.4 按下列要求修改例6.3中产生的表单myForm.,35,6.6基本型控件 一、控件的分类 Visual FoxPro的表单
24、控件对象,分为容器类和控件类两大类。 容器类对象中可以包含其他容器类或控件类对象 控件类对象是直接用于各种控制的组件,不能再包含其他控件。,36,37,6.6基本型控件 二、控件的属性 表单上的控件对象,具有自己的属性、事件和方法。在这些的属性、事件和方法中,有不少是多种控件所共有的,选列了表单控件的一些常用属性。,38,6.6基本型控件,表单设计过程通常包括以下步骤: 1.创建表单,设置表单的属性或方法。 2.创建数据环境,在数据环境中添加表、视图或关系。 3.使用控件类,将控件和数据环境中的数据源连接在一起。 4.保存设计好的表单。 在表单中,经常使用的控件有很多种,各个控件的使用方法基本
25、相同,本节将详细介绍表单常用控件的使用方法.,39,6.6基本型控件 6.6.1标签(Label)控件 p192 标签控件是最常用的显示文本信息的控件对象,标签控件显示的信息为固定文本,没有数据源。标签显示的内容由Caption属性控制,在表单运行时用户不能直接编辑修改,也不能用Tab键选择它,但可以在程序代码中重新设置其Caption属性。,Label标签控件的常用属性,40,6.6基本型控件 6.6.1标签,【例1】(标签1.scx):使用标签处理单行和多行的信息输出,运行时通过代码来改变输出的内容。在表单上添加一个标签控件(label1) 属性设置如下:,为表单的双击事件(DblClic
26、k)编写代码: this.label1.caption = Visual FoxPro 6.0简称VFP 6.0,是Xbase数据库家族的最新成员,可以运行于Windows 9X/2000和Windows NT平台的32位的数据库开发系统。 ,41,6.6基本型控件 6.6.1标签,【例2】(标签2.scx) 交换两个变量中的数据。 (1)建立应用程序界面,(2)设置对象属性,(3)编写程序代码 Command1的Click事件代码 t=THISFORM.Label3.caption thisform.label3.caption=thisform.label4.caption thisfor
27、m.label4.caption=t,42,6.6基本型控件 6.6.1标签,【例3】(标签3.scx)设计立体标签。 (1)建立应用程序界面,(2)设置对象属性,43,(3)编写程序代码 Command1的Click事件代码 Thisform.Release Command2的Click事件代码 Thisform.Label2.Top=Thisform.label1.Top+1 Thisform.Label2.Left=Thisform.label1.Left+1 Command3的Click事件代码 Thisform.Label2.Top=Thisform.label1.Top-1 Thi
28、sform.Label2.Left=Thisform.label1.Left-1,44,6.6基本型控件 6.6.2命令按钮,使用命令按钮,可以通过单击鼠标启动其Click事件、完成特定的功能。 命令按钮常用的属性有: Caption、Picture、Enabled、DisablePicture、Visible等。 其中的Picture属性用于指定显示在按钮上的图片, DisablePicture用于指定在按钮失效时显示在按钮上的图片。 命令按钮最主要的事件是Click事件,也就是单击鼠标将要执行的程序代码。,45,6.6.3文本框(Text)控件 文本框是用来实现数据输入输出的控件。其功能:
29、 1、可以把变量(内存变量、字段变量、数组元素等)的当前值显示在文本框中 2、可以把文本框中的数据输入到变量中。 首先我们先来看几个涉及文本框操作的例题。,46,【例】利用文本框输入圆的半径,计算出圆的面积(计算圆面积.scx) (1)建立应用程序界面,47,(2)设置对象属性,48,49,(3)编写程序代码 Command1 的 Click 事件代码 a=val(thisform.text1.value) Thisform.text2.value=round(a2*3.14,2) & round四舍五入函数,50,【例】“鸡兔同笼”问题(鸡兔同笼.scx): (1)建立应用程序界面,51,(
30、2)设置对象属性,Text1,Text2,52,(3)编写代码:设鸡有X只,兔有Y只。 Text2的interactivechange事件代码 thisform.label3.caption=问笼中鸡有多少只?兔有多少只? Command1的Click事件代码 H=val(thisform.text1.value) F=val(thisform.text2.value) X=(4*h-f)/2 Y=(f-2*h)/2 thisform.label3.caption=则笼中鸡有+allt(str(x)+只,兔有+allt(str(y)+只。,53,例如:我校教师工资可分为基本工资、课时津贴、其他
31、补助 等项,你可以利用表单与数据表计算并保存每一个教师的总 工资数。 再例如:可以利用表单上述的功能设计一个简单的系统,帮 助老师完成每个学期每个学生的各门功课的成绩统计。 表单的文本框控件在数学运算、数据的录入与统计方面发挥 着极其重要的作用。,54,文本框常用属性 1.ControlSource属性:用于指定与文本框关联的数据源。 该属性值填入的是内存变量或字段的变量名。通过该属性,将文本框与某一变量捆绑,实现文本框与变量之间的数据的传递。 该属性还适用于编辑框、命令按钮组、单选按钮及按钮组、复选框、列表框、组合框等控件。 2.Value属性:指定文本框控件的当前值。 当控件没有和其他变量
32、捆绑时用它来保存输入及显示的值,当控件与某一个变量捆绑,则该属性值与变量值相同。,55,3.InputMask属性:用于指定在文本框如何输入和显示数据。,56,4.PassWordChr属性: 该属性用来设定替代文本框显示Value属性值的字符。 该属性值为空时,文本框显示的是Value属性的值,否则显示该属性的值。 该属性仅适用于文本框。 例如:在设计用户口令输入时,如果不希望口令在屏幕上显示出来,可以用此属性来设定输入口令时在文本框中要显示的字符。 5.ReadOnly属性:指定文本框的数据是否只读。当此属性值为真时,所显示的数据不能进行修改。 6.Enabled属性:指定文本框是否可用。
33、当其值为假时,控件将无法获得焦点。,57,图: 学生管理系统的登录窗体,文本框,58,文本框常用事件和方法 1.GotFocus Event :在获得焦点后所发生的事件。 【例】:文本框得到焦点后马上选定控件中的所有文本。 可以在该事件中加入以下代码: This.SelStart=0 &选择文本的起始位置 This.SelLength=LEN(ALLTRIM(This.Value) * 指定选择的字符数等于该文本的长度,59,2.Valid Event :在失去焦点之前发生的事件。 此事件用来进行输入数据的合法性检查。 该事件过程将返回一个逻辑值: 当过程返回值为假时,认为是无效的输入数据,不
34、能退出焦点。 当过程返回值为真时,才能失去焦点。 【例】:如果要求文本框的输入数据不能为空,可以在Valid事件中加入返回命令 RETURN !empty(This.Value) 当文本框有数据输入时,文本框可以失去焦点; 否则,显示“无效数据”,文本框不能失去焦点。,60,文本框生成器,61,例6.5 现有学生表student2,表的结构如下: student(学号(C,8),姓名(C,6),性别(L),出生日期(D),请设计一个浏览学生数据的表单wbbd,如课本p196图6.16所示。 当表单中显示的是第一条学生记录时,命令按钮“上一条”应置为无效;当表单中显示的是最后一条学生记录时,命令
35、按钮“下一条”应置为无效。,62,6.6.4 编辑框(EditBox)控件 编辑框的主要功能也是显示文本。但编辑框扩展了文本框的功能,它多了一个垂直滚动条,使用户能够同时浏览非常长的文本。 编辑框只能用来编辑、输入字符型数据,包括备注型字段。 当编辑的内容在框内放不下时,可以根据编辑框的宽度调整行长或增加滚动条上下移动文本。 编辑框允许输入回车符,可以编辑多行文本。 编辑框也带有自己的生成器,可以通过生成器设置它的属性。 对于文本框的属性,编辑框同样适用。此外,编辑框还具有以下常用属性。,63,1.HideSelection属性 指定当编辑框失去焦点时,编辑框中选定的文本是否仍显示为选定状态。
36、其属性值的设置情况如课本p198表6.14 2.ReadOnly属性 指定用户能否编辑编辑框中的内容。 注意:ReadOnly属性和Enabled属性的区别(P198) 3.ScrollBars属性 指定编辑框是否具有滚动条。属性值为2时有滚动条,属性值为0时没有,默认为2 4.SelStart属性 返回用户在编辑框中所选文本的起始点位置或插入点位置。(没有文本选定时)取值范围:0编辑框中的字符总数 该属性在设计时不可用,运行时可读写。,64,5.SelLength属性 返回用户在编辑框中所选文本的字符数。也可以通过设置该属性,自动选定指定长度的文本。 6.SelText属性 返回用户编辑区内
37、选定的文本,若没有选定任何文本,则返回空串。 该属性设计时不可用,运行时可读写。,7.ReadOnly:指定用户能否编辑框控件中的内容 8.Value:指定或返回辑框对象中的文本内容。,65,使用以上属性需要注意的是: 1.如果把SelLength属性值设置成小于0,将产生一个错误 2.如果SelStart的设置值大于文本总字符数,系统将在末尾插入点于文件末尾 3.如果改变SelStart属性的值,系统将自动把SelLength属性设置为0 4.如果SelText属性设置成一个新值,那么这个新值就会去置换编辑区中所选文本并将SelLength置为0,如果SelLength值本来就是0,那么新值
38、就会被插入到插入点处。,66,例6.6 表单里包含一个编辑框Edit1和两个命令按钮Command1(查找)、Command2(替换),如课本P199图6.17所示。 要求:单击“查找”按钮时,选择Edit1里的某个单词example;单击“替换”按钮时,用单词exercise置换已选择的单词example。,67,6.6.5 复选框(Checkbox)控件 复选框控件可以用来表示两种状态,如“真(.T.)”或“假(.F.)”,“是”或“否”。单击该控件会在其文字前的方框中加上一个“”号,表示选中复选框,否则表示没有选中复选框。 复选框比较常用的属性: Caption属性:设置显示在复选框旁边
39、的文本。 Alignment属性:设置复选框标题是在左边(0)还是在右边(1)。 ControlSource:指定与复选框绑定的数据源,通常是表的字段。对于逻辑型的字段,.F.,.T.和.null.分别对应复选框未被选定、被选定和不确定。 Value属性:用于设置复选框的状态或是用来返回当前复选框的状态(是否被选定)。其默认值为0、1、2分别对应复选框末被选中、被选中和不确定(灰色)。,68,【例】在选项按钮组的例题中加入复选框来改变字体。(复选框示例.scx),69,各复选框的单击事件代码: Check1的Click事件代码: if this.value=1 thisform.label1.
40、fontbold=.t. else thisform.label1.fontbold=.f. endif Check2的Click事件代码: if this.value=1 thisform.label1.fontunderline=.t. else thisform.label1.fontunderline=.f. endif,70,Check3的Click事件代码: if this.value=1 thisform.label1.fontItalic=.t. else thisform.label1.fontItalic=.f. endif Check4的Click事件代码: if thi
41、s.value=1 thisform.label1.fontstrikethru=.t. else thisform.label1.fontstrikethru=.f. endif,71,6.6.6 列表框控件 列表框(ListBox)主要用于创建一个可滚动的列表,允许用户从列表中选择所包含的选项。 常用属性: 1.RowSourceType属性和RowSource属性 RowSourceType属性指明列表框中条目的数据源类型,RowSource属性指定列表框中条目的数据源。 其中RowSourceType属性的取值范围及含义如课本P201表6.15所示。 这两个属性还适合于组合框。 2.C
42、olumnCount属性 指定列表框的列数,即一个条目中包含的数据项数目。,72,3.ControlSource属性 为列表框指定要绑定的数据源,用于设置和保存列表框的选择状态。其数据源类型可以使字符型或数值型。 4.Value属性 返回列表框中被选中的条目。该属性可以是字符型或数值型。 对于列表框和组合框,该属性只读。 5.MultiSelect属性 指定用户能否在列表框控件内进行多重选定。 6.List属性 用以存取列表框中数据条目的字符串数组。 7.ListCount属性 指明列表框中数据条目的数目。 8.Selected属性 指定列表框内的某个条目是否处于选定状态。 该属性在设计时不可
43、用,编程时可读写。,73,6.6.7 组合框(ComboBox)控件 组合框的作用与列表框基本相同,区别有四点: 1、组合框的列表是折叠的,为下拉式列表,如果组合框接近屏幕底部,则自动改为上拉,具有占用表单空间少的优点。 、组合框允许用户输入数据或对选定的数据再编辑。 、组合框不允许多项选择,即没有MultiSelect属性。 、组合框控件有两种类型,由Style属性的取值来决定: 属性值为0时是下拉式组合框,允许用户输入数据和选择列表中的数据项 属性值为2时是下拉式列表框,只能选择列表中的数据项,不能输入数据。,74,例6.7: 设计一个选择查询表单,如课本P203 图6.18所示,表单运行
44、时,可以先在右侧的下拉列表框中选择需要打开并查询的表文件;然后在列表框中选择需要输出的字段;最后单击“确定”按钮,显示指定表中的记录在制定字段上的内容。,75,6.7容器型控件包含其他控件。 容器对象就好象只有一个页面的页框,在它里面可以放入各种控件。 您可能会问,用它有什么好处呢,直接将控件放在表单上不就行了吗? 好处在于您可以把一些相关控件放在一起,比如要移动位置时只需移动容器就行了,里面的所有控件都会一起移动,另外我们可能在运行过程由中程序根据某种情况把一些控件取消或添加到表单,如果把它们放在一个容器中,就可以很方便地一起取消或添加。 6.7.1命令按钮组(CommandGroup)控件
45、 在一个命令按钮组中,可以含有多个按钮,每个按钮可以分别定义自己的属性和事件。 如果要手工调整命令按钮组中的按钮: 从按钮组的快捷菜单(右击按钮组) 选择“编辑”命令,再对组中按钮逐个进行处理。,76,命令按钮组有以下几个常用属性: 1.ButtonCount属性 指定命令按钮组中按钮的数目,默认值是2。 可以通过该属性来改变命令按钮组中的按钮数目。 该属性除适用于命令按钮组外,还适用于选项组。 2.Buttons属性 用于存取命令组中各按钮的数组。 例如: ThisForm.myCommandG.Buttons(2).Visible=.F.,77,3.Value属性 指定命令按钮组的当前状态
46、,该属性的类型有两种: 可以是数值型(系统默认),表示命令按钮组中的第n个命令按钮被选中; 也可以是字符型。表示命令按钮组中Caption属性值与此值相同的命令按钮被选中。 命令按钮组带有生成器,打开方法同文本框。,例如:DO CASE CASE This.Value=1 *针对第一个按钮的事件 CASE This.Value=2 *针对第二个按钮的事件,78,6.7.2 选项按钮组(Optiongroup)控件 选项按钮组是一个容器类控件,一个选项组包含若干选项按钮,用户只能从中选择一个按钮,被选中的选项按钮中间会显示一个圆点。,1.ButtonCount属性 指定选项组中选项按钮的数目。,
47、79,2.Buttons属性 用于存取选项组中每个按钮的数组。 例:ThisForm.myOptionG.Buttons(3).Caption=“Sort by Customer” 3.ControlSource属性 为选项组指定要绑定的数据源。 4.Value属性 初始化或返回选项组中被选中的选项按钮。,80,【例】根据选项按钮选中的状态不同,使标签中的文字 呈现不同的颜色。(选项按钮.scx),81,选项按钮组的Click事件代码。 do case case this.value=1 thisform.label1.forecolor=rgb(255,0,0) thisform.label
48、1.backcolor=rgb(0,0,160) case this.value=2 thisform.label1.forecolor=rgb(0,0,255) thisform.label1.backcolor=rgb(255,255,128) case this.value=3 thisform.label1.forecolor=rgb(0,255,0) thisform.label1.backcolor=rgb(128,0,128) case this.value=4 thisform.label1.forecolor=rgb(255,255,0) thisform.label1.ba
49、ckcolor=rgb(0,0,160) endcase,82,6.7.3 表格(Grid)控件 表格控件以表格的形式在表单上显示数据表的数据,类似于数据表的浏览窗口。 表格控件是容器类控件,它可包含若干个列(Column)控件。 每个列(Column)控件中又含有两种控件: 表头(Header)控件,用来显示每列的标题 文本框(Text)控件,用来编辑本列的表格数据, 文本框也可以根据需要换成编辑框、组合框或微调器等。 表格属性的设置比较复杂,使用表格生成器来完成表格的设置,会起到事半功倍的效果。,83,表格设计基本操作 表格的ColumnCount属性值为-1时,表格就如一个基本型控件,无
50、法对其中的列、标头等进行设置,而表格会自动创建足够多的列来显示数据源中的所有字段。 如果将其指定为一个正值,就可以有两种方法来调整表格的行高和列宽。 1.通过设置HeaderHeight属性和RowHeight属性 2.在编辑状态下,通过鼠标拖动。,84,表格常用属性 1、RecordSourceType和RecordSource:为整个表格设置数据源。0 表,4 SQL 2、ColumnCount属性:指定表格的列数,即包含列对象的个数。默认值为-1,此时表格自动创建足够多的列来显示数据源中所有字段。 3、LinkMaster属性:指定与表格中的子表建立关联的父表名称。 4、ChildOrd
51、er属性:用于指定为建立一对多关联关系,字表所要用到的索引,85,列常用属性 1、ControlSource属性:列的数据源,通常是表中的一个字段。 2、CurrentControl属性:为列指定活动控件,用以显示数据,缺省为 文本框控件。在表格控件的编辑状态下向列中添加新控件,并将该属性设置为其中某个控件的Name属性。 2、Sparse属性:为 .T. 时,CurrentControl属性仅影响当前选定单元格,其它单元格仍为文本框;为 .F. 时, CurrentControl属性影响该列的所有单元格。,86,例子6.8(bgbd.scx) 见课本P209,87,6.7.4 页框(Page
52、Frame)控件 页框是一种容器类控件,它包含若干个页面(Page),但只能有一个活动页面。在运行表单时,可以通过点击选项卡选择活动页面,然后对活动页面上的对象实施操作。页面作为一个内层的容器类控件可以包含各种控件。应用页框的好处是可以扩大表单的可用空间,使设计的表单能容纳更多的控件。,常用属性有: 1、PageCount属性:包含页面的个数.默认值为2.页面对象最常用的属性是Caption,指定页面标题. 2、Pages属性:数组,一个数组元素代表一个页对象,用于代码中访问.,88,3、Tabs属性:默认值为.T.,页框控件显示选项卡. 否则不显示选项卡。 4、TabStrech属性:指定页面标题文本过长时的处理方式。默认值为1,标题仅在一行内显示其中的一部分;为0时,以多行显示所有的标题文本。 5、 ActivePage属性:指定当前活
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 37551.4-2025海洋能波浪能、潮流能及其他水流能转换装置第4部分:新技术鉴定
- 小自考行政管理复习建议要点试题及答案
- 2025《租赁合同全文》
- 高三中化学年二轮复习专题练习合成有机高分子化合物
- 2025年宁夏回族自治区中卫市九年级中考模拟语文试题(含答案)
- 教父读书分享课件
- 推动现代化大农业发展与实施路径
- 2025消防设备维护保养合同
- 低空经济产业园发展投资方案
- 2025非本地员工劳动合同协议书
- 教师规范汉字书写培训
- 2024年新疆医科大学附属肿瘤医院招聘事业单位考试真题
- 2025年《宏观经济政策与发展规划》核心备考题库(含典型题、重点题)
- 【百强校】【黑吉辽卷】黑龙江省哈尔滨市第三中学2025年高三学年第一次模拟考试(哈三中一模)语文试卷
- 肿瘤化学疗法的护理
- 2025至2030年中国网球捡球篮数据监测研究报告
- 角膜塑形镜试戴片参数选择和配适评估巩朝雁课件
- 2025年河南经贸职业学院单招职业技能测试题库1套
- Unit 1 Laugh out Loud!Understanding ideas-The Best Medicine 说课稿-2024-2025学年高中英语外研版(2019)选择性必修第一册
- 2024年西安经济技术开发区管委会招聘笔试真题
- 2024年湖北工程职业学院高职单招语文历年参考题库含答案解析
评论
0/150
提交评论