资源预览内容
第1页 / 共71页
第2页 / 共71页
第3页 / 共71页
第4页 / 共71页
第5页 / 共71页
第6页 / 共71页
第7页 / 共71页
第8页 / 共71页
第9页 / 共71页
第10页 / 共71页
亲,该文档总共71页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第8章可视化表单设计8.1面向对象程序设计简介面向对象程序设计简介8.2表单设计概述表单设计概述8.3表单设计器的使用表单设计器的使用8.4数据环境与数据绑定数据环境与数据绑定8.5常用表单控件常用表单控件8.6表单集与多重表单表单集与多重表单8.1面向对象编程简介8.1.1面向对象程序设计概述面向对象程序设计概述面向对象程序设计(面向对象程序设计(OOP):将客观事物称为对象,:将客观事物称为对象,对对象的抽象得到类。对对象的抽象得到类。面向对象程序设计的主要工作有两部分面向对象程序设计的主要工作有两部分:一是创建类一是创建类,包括定义类中的成员和类提供的功能,包括定义类中的成员和类提供的功能(即方法)(即方法)二是通过类创建对象二是通过类创建对象,并按应用程序的需求建立对象,并按应用程序的需求建立对象之间的协同工作能力。之间的协同工作能力。OOP方式方式不再是以操作和过程作为程序设计的中不再是以操作和过程作为程序设计的中心,而是心,而是将对象和数据结构作为程序设计的中心。将对象和数据结构作为程序设计的中心。1.1.对象对象(ObjectObject) 对对象象是是类类的的运运行行实实例例,客客观观世世界界里里的的任任何何实实体体都都可可以以被被看看作作是是对对象象。对对象象可可以以是是具具体体的的事事物物,也也可可以以指指某些概念。某些概念。 从编程的角度来看,对象是一种将数据和操作过程从编程的角度来看,对象是一种将数据和操作过程结合在一起的数据结构,或者是一种具有属性(数据)结合在一起的数据结构,或者是一种具有属性(数据)和方法(过程和函数)的集合体。事实上程序中的对和方法(过程和函数)的集合体。事实上程序中的对象就是对客观世界中对象的一种抽象描述象就是对客观世界中对象的一种抽象描述8.1.2对象与类的概念2.属性:属性:对象所具有的特征被称为对象的属性对象所具有的特征被称为对象的属性。每个。每个对象都有多个属性,如对象的显示标题、对象的名称、对象都有多个属性,如对象的显示标题、对象的名称、对象的前景色背景色、对象的文本大小等。对象的前景色背景色、对象的文本大小等。3.方法方法:描述对象行为的过程。即程序代码:描述对象行为的过程。即程序代码4.事件:事件:是一种由系统预先定义而由用户或系统发出是一种由系统预先定义而由用户或系统发出的的动作动作。事件作用于对象,对象识别事件并作出相应。事件作用于对象,对象识别事件并作出相应反应反应 。事件集是固定的,用户不能定义新的事件。事件集是固定的,用户不能定义新的事件 。当用户执行相应的操作时都会引发一个事件。当用户执行相应的操作时都会引发一个事件。5.类:类:类是一种对象的归纳和抽象,是对一类相似对类是一种对象的归纳和抽象,是对一类相似对象的性质描述,这些对象具有相同种类的象的性质描述,这些对象具有相同种类的属性(变量)属性(变量)以及方法(函数)以及方法(函数) 8.1.3对象与类的特性1.封装性封装性对象的属性与方法被封装在一个独立的一段对象的属性与方法被封装在一个独立的一段源代码中,对其中的数据的访问必须通过方法实源代码中,对其中的数据的访问必须通过方法实现,不能直接访问。现,不能直接访问。2.层次性层次性类具有层次性,在一个类的基础上通过添加类具有层次性,在一个类的基础上通过添加一些属性和方法可以得到一个新的类,称原来的一些属性和方法可以得到一个新的类,称原来的类为基类或父类,产生的新类为派生类或子类类为基类或父类,产生的新类为派生类或子类 。子类继承了父类的所有属性和方法。子类继承了父类的所有属性和方法。3.继承性继承性即即子类具有父类的所有属性和方法。对父类所作子类具有父类的所有属性和方法。对父类所作的修改会被子类自动继承。的修改会被子类自动继承。4.4.抽象性抽象性用户对对象进行操作时,可忽略对象内部的实现用户对对象进行操作时,可忽略对象内部的实现细节。细节。5.5.多态性多态性同一类的对象可以有不同的表现形式。同一类的对象可以有不同的表现形式。8.1.4VisualFoxpro的基类Visual FoxPro提供了一系列的基本对象类,提供了一系列的基本对象类,称为基类称为基类(Base Class)。每个对象都有各自的属。每个对象都有各自的属性和方法。性和方法。基类的分类基类的分类:基类一般可分为:基类一般可分为控件类控件类和和容器类容器类控件类控件类:该类的对象必须作为一个整体来访问:该类的对象必须作为一个整体来访问或处理。如命令按钮和文本框等。或处理。如命令按钮和文本框等。容器类容器类:该类对象可以容纳控件类对象,可以:该类对象可以容纳控件类对象,可以单独对其中的组件进行修改和操作。如表单、单独对其中的组件进行修改和操作。如表单、命令按钮组、页框等。命令按钮组、页框等。1控件类控件类控件:通常是指容器类对象内的一个图形化的、控件:通常是指容器类对象内的一个图形化的、并能与用户进行交互的对象。并能与用户进行交互的对象。常见的控件类对象见下表常见的控件类对象见下表控件控件中文名称中文名称控件控件中文名称中文名称CheckBox复选框复选框ListBox列表框列表框ComboBox组合框组合框OLEBoundOLE绑定型控件绑定型控件CommandButton命令按钮命令按钮OLEContainer OLE容器控件容器控件OptionButton选项按钮选项按钮Shape形状形状Label标签标签Spinner微调按钮微调按钮EditBox编辑框编辑框TextBox文本框文本框Image图像图像Timmer计时器计时器Line线条线条2容器类容器类常见的容器类对象见下表常见的容器类对象见下表容器容器可包含对象可包含对象ContainerContainer(容器)(容器)任意控件任意控件FormSetFormSet(表单集)(表单集)表单、工具栏表单、工具栏FormForm(表单)(表单)任意控件任意控件GridGrid(表格)(表格)多个表格列多个表格列ColumnColumn(列)(列)列标头等列标头等PageFramePageFrame(页框)(页框)多个页面多个页面PagePage(页面)(页面)任意控件、容器和自定义对象任意控件、容器和自定义对象CommandGroupCommandGroup(命令按钮组)(命令按钮组) 命令按钮命令按钮OptionGroupOptionGroup(选项按钮组)(选项按钮组)选项按钮选项按钮ToolBarToolBar(工具栏)(工具栏)任意控件、页框和容器任意控件、页框和容器ProjectHookProjectHook(项目)(项目)文件与服务程序文件与服务程序一个对象被创建后,对对象的操作主要是访问一个对象被创建后,对对象的操作主要是访问其属性及调用其方法。这些操作通过对该对象的引用其属性及调用其方法。这些操作通过对该对象的引用进行。其基本格式为:进行。其基本格式为:对象引用对象引用.属性属性 对象引用对象引用.方法方法其中对象引用分为绝对引用和相对引用其中对象引用分为绝对引用和相对引用1.绝对引用绝对引用从最顶层的容器开始的引用。如:从最顶层的容器开始的引用。如:FormSet1.Form1.CommandGroup1.Command.Enabled=.f.8.1.5对象的引用2.相对引用引用时使用下面关键字的引用引用时使用下面关键字的引用参照关键字参照关键字说明说明Parent当前对象的直接容器对象即其父类对当前对象的直接容器对象即其父类对象象this当前对象当前对象thisform包含当前对象的表单包含当前对象的表单thisformset包含当前对象的表单集包含当前对象的表单集【例【例8.1】对象的相对引用】对象的相对引用thisform.refreshthisform.Label1.Caption=你好,信息世界你好,信息世界this.value=3thisformset.form1.refreshthis.pqrent.text1.setfocus8.2表单设计概述8.2.1 创建表单的途径创建表单的途径1.使用表单向导创建表单使用表单向导创建表单2.在表单设计器中使用表单生成器创建表单在表单设计器中使用表单生成器创建表单3.使用表单设计器创建表单使用表单设计器创建表单4.通过编写程序创建表单通过编写程序创建表单打开表单设计器的方法:打开表单设计器的方法:1.通过通过“文件文件/新建新建/表单表单/新建新建”2.使用命令:使用命令:create form 表单文件名表单文件名8.2.2表单的修改与运行表单的修改与运行1.表单的修改表单的修改(1)菜单方式:通过文件菜单的打开命令)菜单方式:通过文件菜单的打开命令(2)命令方式:)命令方式:modify form 表单文件名表单文件名2.表单的运行表单的运行(1)菜单方式)菜单方式打开表单后使用工具栏中的!,或使用表打开表单后使用工具栏中的!,或使用表单菜单中的执行表单命令单菜单中的执行表单命令(2)命令方式)命令方式do form 表单文件名表单文件名 with 参数表参数表说明:参数是传给说明:参数是传给Init事件代码中的事件代码中的PARAMETERS或或LPARAMETERS中的参数。中的参数。8.2.3常用表单事件与方法常用表单事件与方法1.1.常用表单事件:常用表单事件:(1 1)InitInit事件事件在对象建立之前引发,在表单的在对象建立之前引发,在表单的InitInit事件前引发事件前引发(2 2)ActivateActivate事件事件当一个表单、表单集或页面成为当前活动对象时引发当一个表单、表单集或页面成为当前活动对象时引发(3 3)DestroyDestroy事件事件在控件对象释放时表单对象的在控件对象释放时表单对象的DestroyDestroy事件之前引发事件之前引发(4 4)LoadLoad事件事件在表单对象被创建之前即在表单对象被创建之前即InitInit事件之前引发事件之前引发(5 5)UnloadUnload事件事件在表单对象的在表单对象的DestroyDestroy事件后引发事件后引发(6 6)ErrorError事件:出错时引发事件:出错时引发(7 7)GotFocusGotFocus事件:对象被选定时引发事件:对象被选定时引发(8 8)ClickClick事件:单击时引发事件:单击时引发2.2.常用表单方法常用表单方法(1 1)RelaseRelase方方法法:将将表表单单从从内内存存中中释释放放。ThisForm.ReleaseThisForm.Release表表单单运运行行时时,用用户户单单击击表表单单右右上上角角的的关关闭闭按按钮钮,系统会自动执行系统会自动执行RelaseRelase方法。方法。(2 2)RefreshRefresh方法:刷新表单。方法:刷新表单。(3 3)ShowShow方方法法:显显示示表表单单。该该方方法法将将表表单单的的VisibleVisible属性设置为属性设置为.T.T.。(4 4)HideHide方法:隐藏表单。方法:隐藏表单。(5 5)SetFocusSetFocus方法:使对象成为活动对象。方法:使对象成为活动对象。8.2.48.2.4使用表单向导创建表单使用表单向导创建表单1.创建单表表单创建单表表单【例【例8-2】使用表单向导创建一个可维护职工档】使用表单向导创建一个可维护职工档案表案表zgda.dbf的表单的表单2.创建一对多表单创建一对多表单【例【例8-3】使用】使用student表和表和borrow表创建一个表创建一个一对多表单一对多表单8.3 表单设计器的使用操作步骤操作步骤1.启动表单设计器创建空表单启动表单设计器创建空表单2.指定数据源(不是必须)指定数据源(不是必须)3.添加控件添加控件4.设置控件属性设置控件属性5.添加代码添加代码6,运行表单,运行表单8.3.1表单设计器的启动表单设计器的启动8.3.2表单设计工具栏表单设计工具栏通过通过“显示显示”菜单中的菜单中的“工具栏工具栏”命令可打开命令可打开或关闭工具栏。或关闭工具栏。1.表单设计器工具栏表单设计器工具栏2.表单控件工具栏表单控件工具栏3.布局工具栏布局工具栏4.属性窗口属性窗口5.代码窗口代码窗口8.3.3表单生成器表单生成器在表单设计器中通过下面方法之一可以打开表在表单设计器中通过下面方法之一可以打开表单生成器:单生成器:1.单击单击“表单设计器表单设计器”工具栏中的工具栏中的”表单生成表单生成器器“按钮按钮”2.从快捷菜单中选择从快捷菜单中选择“生成器生成器”命令命令3.从从“表单表单”菜单中选择菜单中选择“快速表单快速表单”命令命令【例【例8-4】使用】使用“表单生成器表单生成器”快速生成一个职快速生成一个职工档案表单。样式选择工档案表单。样式选择“新奇式新奇式”8.3.4用表单设计器设计表单用表单设计器设计表单主要操作步骤主要操作步骤1.使用使用“文件文件/新建新建”命令新建一个空表单命令新建一个空表单2.向数据环境中添加表(当表单中要使用表时)向数据环境中添加表(当表单中要使用表时)3.向表单中添加控件,并对控件进行合理布局向表单中添加控件,并对控件进行合理布局4.选择控件,修改控件的属性选择控件,修改控件的属性5.为命令按钮添加事件代码为命令按钮添加事件代码6.运行表单运行表单【例【例8-5】设计一个名为】设计一个名为“身分验证身分验证”的应用程序的应用程序的密码输入对话框。要求用户输入的密码字符自动显的密码输入对话框。要求用户输入的密码字符自动显示为示为“”。密码正确,显示。密码正确,显示“密码正确,欢迎进行密码正确,欢迎进行本系统!本系统!”,否则,显示,否则,显示“密码错,禁止进行本系统!密码错,禁止进行本系统!”,最多允许输入,最多允许输入3次密码。次密码。要点:要点:1.使用表单完成,表单中要添加:一个标使用表单完成,表单中要添加:一个标签控件、一个文本框控件、二个命令按钮签控件、一个文本框控件、二个命令按钮2.修改控件的属性:控件上显示的文字,文本框修改控件的属性:控件上显示的文字,文本框输入的内容显示为输入的内容显示为*号号3.要给命令按钮添加代码,使其完成指定的功能。要给命令按钮添加代码,使其完成指定的功能。操作步骤:操作步骤:1.创建空表单,创建空表单,2.向表单中添加控件,向表单中添加控件,3.修改控件的属性,修改控件的属性,4.添加代码添加代码控件的属性控件的属性控件控件属性属性属性值属性值Form1Caption=dtoc(date()Label1Caption密码:密码:Text1PasswordChar*Command1Caption确定确定Command2Caption清除清除添加代码添加代码Form1对象的对象的Load事件代码:事件代码:public ii=0Command2对象的对象的Click代码:代码:thisform.text1.value=thisform.text1.setfocusCommand1对象的对象的Click代码:代码:i=i+1if i3 if thisform.text1.value=3721 messagebox(密码正确,欢迎进行本系统!密码正确,欢迎进行本系统!) thisform.release else messagebox(密码错,重新输入!密码错,重新输入!) thisform.text1.value= thisform.text1.setfocus endifelse messagebox(密码错,禁止进行本系统!密码错,禁止进行本系统! ) this.enabled=.f.endif8.48.4数据环境与数据绑定数据环境与数据绑定8.4.1数据环境数据环境数据环境指表单或表单集中使用的数据源,数据环境指表单或表单集中使用的数据源,即表单或表单集中所有用到的数据所在的表。即表单或表单集中所有用到的数据所在的表。1.启动启动“数据环境设计器数据环境设计器”通过表单设计器工具栏中的数据环境按钮通过表单设计器工具栏中的数据环境按钮或显示菜单中的或显示菜单中的“数据环境数据环境”命令命令2.向数据环境添加表或视图向数据环境添加表或视图使用快捷菜单中相应命令添加使用快捷菜单中相应命令添加3.在数据环境中设置关系在数据环境中设置关系方法:将主表中的字段拖动到子表中的相应索方法:将主表中的字段拖动到子表中的相应索引字段上即可。引字段上即可。8.4.2数据绑定数据绑定即为表中的控件指定相关的数据源。通常即为表中的控件指定相关的数据源。通常由控件的由控件的ControlSource属性指定属性指定8.4.3向表单添加字段向表单添加字段直接将数据中的字段拖动到表单中。直接将数据中的字段拖动到表单中。8.5常用表单控件常用表单控件8.5.1标签与命令按钮标签与命令按钮1.标签标签用于显示静态文本(运行后不能改变的文用于显示静态文本(运行后不能改变的文字),一般用于提示。文本内容保存在字),一般用于提示。文本内容保存在Caption属性中。属性中。标签的主要属性有:标签的主要属性有:Caption,Autosize,Fontsize,Forecolor,BackStyle,BackColor,Name,Alignment2.命令按钮命令按钮Caption属性内容为命令按钮上显示的属性内容为命令按钮上显示的内容。添加命令按钮的操作主要有:设置内容。添加命令按钮的操作主要有:设置Caption属性(后面加属性(后面加E可以将可以将E设置为设置为热键)和输入代码(热键)和输入代码(Click事件)事件)【例【例8-6】设计一个简单表单,含一个显示】设计一个简单表单,含一个显示“欢迎使用欢迎使用档案管理系统档案管理系统”文字的标签以及文字的标签以及“进入进入”、“退出退出”两个命令按钮两个命令按钮控件控件属性事件属性事件属性值(代码)属性值(代码)标签控件标签控件Label1 Caption欢迎使用档案管理系统欢迎使用档案管理系统Command1Caption进入进入Command2Caption退出退出QCommand1Click事事件件thisform.releasedo form 身分验证身分验证Command1Click事事件件thisform.release1.文本框文本框(TextBox)和编辑框和编辑框(EditBox)的区别的区别相同之处:都可以由用户直接输入数据与编辑相同之处:都可以由用户直接输入数据与编辑数据,输入的数据保存在数据,输入的数据保存在Value属性中。属性中。不同之处:文本框只能输入一行文本,编辑框不同之处:文本框只能输入一行文本,编辑框可以输入多行文本(有滚动条);文本框可以可以输入多行文本(有滚动条);文本框可以输入字符型(默认类型)、数值型、日期型和输入字符型(默认类型)、数值型、日期型和逻辑型数据,而编辑框只能输入字符型数据。逻辑型数据,而编辑框只能输入字符型数据。要使得文本框中输入的数据为某一确定的类型,要使得文本框中输入的数据为某一确定的类型,必须先设置其必须先设置其Value属性值为该类型的数据或通属性值为该类型的数据或通过文本框生成器设置其属性。过文本框生成器设置其属性。8.5.2文本框和编辑框添加文本框和编辑框后的主要操作:添加文本框和编辑框后的主要操作:1.设置框中的默认值:在设置框中的默认值:在Value属性中设置,设属性中设置,设置后的值要运行时才能看见。置后的值要运行时才能看见。2.右击文本框控件或编辑框控件,从快捷菜单右击文本框控件或编辑框控件,从快捷菜单中选择中选择“生成器生成器”,然后在生成器对话框中设,然后在生成器对话框中设置其格式及与其对应的字段等。置其格式及与其对应的字段等。【例【例8-7】设计一个如图】设计一个如图8-21所示的所示的“日期与时日期与时间间”表单,只含一个文本框,逐次单击之,即表单,只含一个文本框,逐次单击之,即可轮流显示系统当前的日期或时间。日期格式可轮流显示系统当前的日期或时间。日期格式为年月日,日期分隔符为为年月日,日期分隔符为“.”操作步骤操作步骤1.通过通过“文件文件/新建新建”命令建立一个空表单命令建立一个空表单2.向表单中添加一个文本框控件向表单中添加一个文本框控件3.设置属性:设置设置属性:设置Form1的的Caption属性为属性为“日期日期与时间与时间”4.添加代码:双击表单空白处,添加添加代码:双击表单空白处,添加Form1的的Load事件代码如下:事件代码如下:public ii=.t.4.修改文本框修改文本框Text1的属性:的属性:FontSize 为为28BackStyle为为15.编写文本框编写文本框Text1的的Click事件代码如下:事件代码如下:if i=.t.thisform.text1.value=date() &取得当前日期取得当前日期thisform.text1.dateformat=12 &日期格式为年月日日期格式为年月日thisform.text1.datemark=.i=.f.elsethisform.text1.value=time()i=.t.endif【例【例8-7】设计一个如图】设计一个如图8-22所示的表单所示的表单,在在职工档案表中查询指定姓氏的职工姓名,并将结职工档案表中查询指定姓氏的职工姓名,并将结果显示在编辑框中。果显示在编辑框中。操作要点:操作要点:1.向数据环境中添加表向数据环境中添加表2.创建表单,并添加创建表单,并添加2个标签控件、个标签控件、1个文本框控个文本框控件、件、1个编辑框控件、个编辑框控件、2个命令按钮并修改其标题个命令按钮并修改其标题属性属性3.添加命令按钮的添加命令按钮的Click事件代码。其中查找按钮事件代码。其中查找按钮的代码主要功能是在表中查找与文本框中输入的的代码主要功能是在表中查找与文本框中输入的姓氏相符的姓名,并将其累加到编辑框的姓氏相符的姓名,并将其累加到编辑框的value属属性中。性中。set exact offthisform.text1.setfocus作用:设置字符串的非严格匹配并将光标作用:设置字符串的非严格匹配并将光标定位到文本框中。定位到文本框中。执行时间:当表单激活时执行执行时间:当表单激活时执行Form1的的Activate事件代码事件代码查询命令按钮代码查询命令按钮代码thisform.edit1.value=xs=alltrim(thisform.text1.value)go topk=0scan for zgda.姓名姓名=xsthisform.edit1.value= thisform.edit1.value+ zgda.姓名姓名+chr(13)k=1endscanif k=0messagebox(职工表中无此姓氏职工表中无此姓氏,0,查找失败查找失败)endifthisform.text1.value=thisform.text1.setfocusreturn退出命令按钮代码退出命令按钮代码release thisform8.5.3列表框和组合框1.列表框和组合框的区别列表框和组合框的区别共同之处:列表框共同之处:列表框(ListBox)和组合框和组合框(ComboBox)都有一个供用户选择的列表。都有一个供用户选择的列表。不同之处:列表框中内容只能选择不能输入,不同之处:列表框中内容只能选择不能输入,当其内容不能完全显示时在其右边有一个滚动当其内容不能完全显示时在其右边有一个滚动条。而组合框则可进行输入操作(条。而组合框则可进行输入操作(Style属性必属性必须为须为0),也可通过其右边的下拉按钮进行选择。),也可通过其右边的下拉按钮进行选择。2.列表框生成器与组合框生成器列表框生成器与组合框生成器列表框与组合框控件的主要操作是添加列表内列表框与组合框控件的主要操作是添加列表内容,添加的方法可以通过各自的生成器进行。容,添加的方法可以通过各自的生成器进行。3.列表框与组合框的数据源列表框与组合框的数据源通过修改其通过修改其RowSourseType(列表内容的来源类列表内容的来源类型)和型)和RowSourse(列表内容)属性使其与表(列表内容)属性使其与表中的字段建立关联。中的字段建立关联。【例【例8-9】设计一个表单,将职工档案表】设计一个表单,将职工档案表zgda.dbf中所有记录的姓名显示在一个列表框中,中所有记录的姓名显示在一个列表框中,当选择某一姓名后,将选择的姓名显示在一个当选择某一姓名后,将选择的姓名显示在一个文本框中。文本框中。操作要点:操作要点:1.建立一个空表单,然后添加一个标签控件、建立一个空表单,然后添加一个标签控件、一个文本框控件和一个列表框控件一个文本框控件和一个列表框控件2.向数据环境中添加表向数据环境中添加表zgda3.修改控件的属性修改控件的属性标签控件的标签控件的Caption为为“姓名姓名”将列表框控件的将列表框控件的RowSourceType属性为属性为6字段,字段,RowSource属性为属性为zgda.姓名姓名4.编写列表框编写列表框(List1)的的InteractiveChange事件代码事件代码(交互式改交互式改变:当鼠标单击或使用键盘的移动键变:当鼠标单击或使用键盘的移动键时激发)如下:时激发)如下:thisform.text1.value=this.value8.5.4复选框与选项按钮组复选框复选框(CheckBox)又称多选框,选项按钮又称多选框,选项按钮组(组(OptionGroup)又称单选框又称单选框1.复选框复选框只有选定与末被选定两种状态,可以与逻只有选定与末被选定两种状态,可以与逻辑型字段建立关联,辑型字段建立关联,选择选择Value值为值为1逻辑型字段值为逻辑型字段值为.T.未选择未选择Value值为值为0逻辑型字段值为逻辑型字段值为.F.复选框有三种不同的外观:方框、文本按复选框有三种不同的外观:方框、文本按钮和图形按钮钮和图形按钮(1)方框)方框Style属性为属性为0,Caption属性值为复选框右边属性值为复选框右边文字。文字。(2)文本按钮)文本按钮Style属性为属性为1.Picture取默认值取默认值(无无)Caption属性属性值为复选框上的文字。此种复选框被选定时,文值为复选框上的文字。此种复选框被选定时,文本按钮呈按下状态。本按钮呈按下状态。(3)图形按钮)图形按钮Style属性为属性为1.Picture属性为图形文件名,删除属性为图形文件名,删除Caption属性值。此种复选框被选定时,图形按钮属性值。此种复选框被选定时,图形按钮呈按下状态。呈按下状态。2.选项按钮组选项按钮组单选按钮(选项按钮组):每次可从多个待选项中选单选按钮(选项按钮组):每次可从多个待选项中选择其中一个。可以通过生成器设置择其中一个。可以通过生成器设置OptionGroup1.value的值为组中按钮的序号:的值为组中按钮的序号:OptionGroup1.value=1选择选择option1OptionGroup1.value=2选择选择option2单选按钮可以与单选按钮可以与数值型字段数值型字段建立关联。建立关联。方法:在属性窗口中选择方法:在属性窗口中选择ControlSourse属性值为相应属性值为相应的数值型字段的数值型字段设置组中按钮的个数:设置其设置组中按钮的个数:设置其BottonCount属性为相应属性为相应的数字,然后将的数字,然后将Autosize属性设为属性设为.T.【例【例8-10】设计一个表单,对随意输入在文本框】设计一个表单,对随意输入在文本框中的文字,可选择不同的字体进行显示中的文字,可选择不同的字体进行显示操作步骤:操作步骤:1.建立一个空表单建立一个空表单2.添加添加2个标签控件,一个文本框,一个选项按钮个标签控件,一个文本框,一个选项按钮组和一个命令按钮组和一个命令按钮3.设置属性:修改标签控件和命令按钮的设置属性:修改标签控件和命令按钮的Caption属性及字号分别为:请输入文本内容、请选择字属性及字号分别为:请输入文本内容、请选择字体、关闭,字号为体、关闭,字号为184.通过生成器设置选项按钮组:数目设置为通过生成器设置选项按钮组:数目设置为4.标标题分别为:黑体、宋体、隶书和楷体题分别为:黑体、宋体、隶书和楷体_23125.编写选项按钮组编写选项按钮组OptionGroup1的的Click事件代码:事件代码:DO CASECASE This.value=1 thisform.text1.fontname=黑体黑体CASE This.value=2 thisform.text1.fontname=宋体宋体CASE This.value=3 thisform.text1.fontname=隶书隶书CASE This.value=4 thisform.text1.fontname=楷体楷体_2312endcase6.编写编写Command1的的Click事件代码如下事件代码如下thisform.release8.5.5命令按钮组命令按钮组命令按钮组同时添加多个命令按钮,按钮个数可以通过同时添加多个命令按钮,按钮个数可以通过BottonCountBottonCount属性设置,按钮的名称可以通属性设置,按钮的名称可以通过在属性窗口中选择各个按钮名称过在属性窗口中选择各个按钮名称(Command1.Command2)Command1.Command2)后设置其后设置其CaptionCaption属属性性【例【例8-11】向由例】向由例8-4建立的表单添加三个命令建立的表单添加三个命令按钮,其作用分别是:上页、下页、退出即单按钮,其作用分别是:上页、下页、退出即单击按钮后将显示:上一条记录、下一条记录或击按钮后将显示:上一条记录、下一条记录或关闭表单。关闭表单。操作步骤:操作步骤:1.打开表单打开表单2.添加一个命令按钮组添加一个命令按钮组3.打开命令按钮组的生成器对话框,将按钮数打开命令按钮组的生成器对话框,将按钮数目设置为目设置为3.按钮标题分别为上页、下页、退出,按钮标题分别为上页、下页、退出,在布局中设置按钮布局为水平。在布局中设置按钮布局为水平。4.为命令按钮组为命令按钮组(Commandgroup1)的的Click事件编事件编写代码:写代码:DO CASE CASE THIS.VALUE=1 go top this.command1.enabled=.f. this.command2.enabled=.f. this.command3.enabled=.t. this.command4.enabled=.t. CASE THIS.VALUE=2 skip-1 this.command3.enabled=.t. this.command4.enabled=.t. if bof() this.command1.enabled=.f. this.command2.enabled=.f. endif CASE THIS.VALUE=3 skip this.command1.enabled=.t. this.command2.enabled=.t. if eof() this.command3.enabled=.f. this.command4.enabled=.f. endifCASE THIS.VALUE=4 go bottom this.command1.enabled=.t. this.command2.enabled=.t. this.command3.enabled=.f. this.command4.enabled=.f.endcasethisform.refreshDO CASE CASE THIS.VALUE=1 go top this.command1.enabled=.f. this.command2.enabled=.f. this.command3.enabled=.t. this.command4.enabled=.t. CASE THIS.VALUE=2 skip-1 this.command3.enabled=.t. this.command4.enabled=.t. if bof() this.command1.enabled=.f. this.command2.enabled=.f. endif CASE THIS.VALUE=3 skip this.command1.enabled=.t. this.command2.enabled=.t. if eof() this.command3.enabled=.f. this.command4.enabled=.f. endif CASE THIS.VALUE=4 go bottom this.command1.enabled=.t. this.command2.enabled=.t. this.command3.enabled=.f. this.command4.enabled=.f.endcasethisform.refresh8.5.7计时器计时器计时器(Timer)控件是用于表单中控制时间的控控件是用于表单中控制时间的控件。计时器在运行时不可见,使用计时器控件件。计时器在运行时不可见,使用计时器控件主要有个要素:主要有个要素:Timer事件代码:用于设定该事件触发时要执行事件代码:用于设定该事件触发时要执行的动作。的动作。Interval属性:表示触发属性:表示触发Timer事件的时间间隔,事件的时间间隔,单位为毫秒。单位为毫秒。Enabled属性:值为属性:值为.T.时启动计时器,为时启动计时器,为.F.时时终止。终止。【例【例8-12】计时器应用示例。创建一个表单,】计时器应用示例。创建一个表单,在表单上部设计一个向左移动的字幕,在表单在表单上部设计一个向左移动的字幕,在表单下部显示当前的数字时钟。下部显示当前的数字时钟。操作步骤:操作步骤:1.建立一个空表单,并添加个标签和个计建立一个空表单,并添加个标签和个计时器控件时器控件2.设置属性:设置属性:Label1.caption=欢迎使用本系统欢迎使用本系统AutoSize=.T. FontSize=22 BackStyle=0Label2. AutoSize=.T. BackStyle=0Timer1.Interval=200 Timer2.Interval=10003.添加添加Timer1的的Timer事件代码如下事件代码如下if thisform.label1.left+thisform.label1.width0 thisform.label1.left=thisform.label1.widthelse thisform.label1.left=thisform.label1.left-10endif添加添加Timer1的的Timer事件代码如下:事件代码如下:if thisform.label2.caption!=time() thisform.label2.caption=time()endif8.5.7表格表格表格(Grid) 控件可用来在表单或页框中显示与控件可用来在表单或页框中显示与修改数据表中的记录。表格由若干行和若干列修改数据表中的记录。表格由若干行和若干列组成,列由列标题和列控件组成。组成,列由列标题和列控件组成。1.由数据环境创建表格由数据环境创建表格将数据环境中的表直接拖动到表单中即可。将数据环境中的表直接拖动到表单中即可。2.用表格生成器创建表格用表格生成器创建表格在表单中创建了表格后,使用表格生成器可设在表单中创建了表格后,使用表格生成器可设置表格。置表格。8.5.8页框页框页框(PageFrame):是可包含多个页面的容器类是可包含多个页面的容器类控件,主要用于建立具有多个选项卡的对话框。控件,主要用于建立具有多个选项卡的对话框。页框的主要属性有:页框的主要属性有:PageCount:页框中所包含的页面的个数。:页框中所包含的页面的个数。TabStyle:页框中的选项框是平均分布:页框中的选项框是平均分布(0)还是还是在左边在左边(1)ActivePage:指定页框中活动页的页码。指定页框中活动页的页码。TabStretch:单行:单行(1)或多行或多行(0)显示页面标题。显示页面标题。【例【例8-13】页框应用示例。设计一个包含两个页】页框应用示例。设计一个包含两个页面的面的“职工信息查询职工信息查询”表单,一个页面用于显示表单,一个页面用于显示查询到的职工的基本信息,另一个页面用来显示查询到的职工的基本信息,另一个页面用来显示职工的简历和照片。职工的简历和照片。操作要点:操作要点:1.创建一个空表单,向表单中添加标签控件、文创建一个空表单,向表单中添加标签控件、文本框、命令按钮和页框控件各本框、命令按钮和页框控件各1个个2.向数据环境中添加表向数据环境中添加表3.修改控件的属性(修改控件的属性(caption属性,页框控件的属性,页框控件的pagecount属性为属性为2)4.编辑页框:从页框控件的快捷菜单中选择编辑。编辑页框:从页框控件的快捷菜单中选择编辑。选择第选择第1个页框,将数据环境中的相应字段拖动个页框,将数据环境中的相应字段拖动到页框中,对第到页框中,对第2个页框做相同的操作个页框做相同的操作添加代码添加代码Form1的的Activate事件代码事件代码set exact onthisform.text1.setfocuscommand1的的click事件代码事件代码cz=alltrim(thisform.text1.value)n=recno()go topscan for zgda.编号编号=cz or zgda.姓名姓名=cz thisform.pageframe1.page1.refresh thisform.pageframe1.page2.refresh thisform.text1.setfocus returnendscanmessagebox(查无此人!查无此人!,0,查找失败查找失败)go nthisform.text1.value=thisform.pageframe1.page1.refreshthisform.pageframe1.page2.refreshthisform.text1.setfocusreturn8.5.9ActiveX控件与控件与ActiveX绑定控件绑定控件ActiveXActiveX控件就是符合控件就是符合ActiveXActiveX标准的控件,标准的控件,通过表单控件工具栏中的按钮可以向表单中插通过表单控件工具栏中的按钮可以向表单中插入入ActiveXActiveX控件,或直接插入控件,或直接插入OLEOLE对象。对象。1. 1. ActiveXActiveX控件控件【例【例8-138-13】创建一个电子日历表单用于日历】创建一个电子日历表单用于日历2. ActiveX2. ActiveX绑定控件绑定控件该控件可用于显示数据表中的通用型字段中的内该控件可用于显示数据表中的通用型字段中的内容。操作方法是:添加该控件后修改其容。操作方法是:添加该控件后修改其ControlSourceControlSource属性为指定的字段。属性为指定的字段。1.线条(线条(Line)主要用于在表单上画各种直线与斜线,其主主要用于在表单上画各种直线与斜线,其主要属性有:要属性有:Width宽度宽度 Height高度高度BorderWidth 线条的粗细线条的粗细BorderColor 线条的颜色线条的颜色BorderStyle 线条的风格:实线、虚线或点划线线条的风格:实线、虚线或点划线LineSlant 线条的倾斜情况有线条的倾斜情况有/和和两种两种8.5.10 其他控件其他控件2.形状形状(Shape)用于绘制矩形、正方形、圆或椭圆等,主用于绘制矩形、正方形、圆或椭圆等,主要属性有:要属性有:Curvature:曲率,当其值为曲率,当其值为0时绘制的是正方形时绘制的是正方形或矩形,为或矩形,为1到到99时绘制的是圆或椭圆时绘制的是圆或椭圆Width:宽度:宽度Height:高度:高度当宽度与高度相等时为正方形或圆当宽度与高度相等时为正方形或圆3.图像图像(Image) 用于在表单上添加由图像文件生成的图像,图用于在表单上添加由图像文件生成的图像,图像文件由像文件由Picture属性指定属性指定4.容器容器(container)容器控件可以包含多个不同类型的控件,容器控件可以包含多个不同类型的控件,并把它们当作一个整体处理。向容器中添加并把它们当作一个整体处理。向容器中添加控件的方法是:右击容器控件从快捷菜控件的方法是:右击容器控件从快捷菜单中选择编辑添加控件。单中选择编辑添加控件。若不是在编辑状态下添加的控件,则不若不是在编辑状态下添加的控件,则不被包含在容器中,也不允许将表单中的其余被包含在容器中,也不允许将表单中的其余控件复制到容器中。控件复制到容器中。5.超级链接控件超级链接控件例例1.在表单中添加一超级链接控件和一个标在表单中添加一超级链接控件和一个标签控件,签控件,2.设置标签控件的设置标签控件的Caption属性为属性为:校园网主页校园网主页3.在其在其Click事件中添加如下代码:事件中添加如下代码:thisform.hyperlink1.navigateto(www.jyu.edu.cn)设置设置Tab顺序:选择显示菜单中的顺序:选择显示菜单中的“Tab键次序键次序”后在表单中按序单击后在表单中按序单击6.微调控件(微调控件(Spinner)微调控件用于在表单中接收指定范围内的数据微调控件用于在表单中接收指定范围内的数据其主要属性有:其主要属性有:属性属性说明说明value微调控件的当前值微调控件的当前值KeyboardHighValue 键盘输入数值的上限键盘输入数值的上限KeyboardLowValue键盘输入数值的下限键盘输入数值的下限SpinnerHighValue鼠标选择数值的上限鼠标选择数值的上限SpinnerLowValue鼠标选择数值的下限鼠标选择数值的下限Increment鼠标选择一次的增减值鼠标选择一次的增减值【例【例8-16】设计一个可实现用微调控件来控制标】设计一个可实现用微调控件来控制标签文字大小的表单签文字大小的表单操作方法:操作方法:1.创建一个空表单,向表单中添加一个标签控创建一个空表单,向表单中添加一个标签控件、一个微调控件和一个命令件、一个微调控件和一个命令2.修改标签控件的修改标签控件的Caption属性和微调控件的上、属性和微调控件的上、下限及增减值下限及增减值3.编写微调控件的编写微调控件的InteractiveChange事件代码事件代码如下:如下:thisform.label1.fontsize=this.value命令按钮的命令按钮的Click事件代码:事件代码:thisform.release8.6表单集与多重表单表单集与多重表单8.6.1表单集表单集表单集(表单集(FormSet)是将多个表单放在同一)是将多个表单放在同一个个.scx文件中。其操作方法是:文件中。其操作方法是:1.创建一个新表单创建一个新表单2.执行执行“表单表单”菜单中的菜单中的“创建表单集创建表单集”命令命令3.执行执行“表单表单”菜单中的菜单中的“添加新表单添加新表单”命令命令4.在不同的表单中插入不同的控件在不同的表单中插入不同的控件各表单可用同一个数据表各表单可用同一个数据表8.6.2多重表单多重表单1.单文档界面和多文档界面单文档界面和多文档界面单文档界面:应用程序窗口只能显示一个文档窗单文档界面:应用程序窗口只能显示一个文档窗口。如记事本口。如记事本多文档界面:应用程序窗口可显示多个文档窗口。多文档界面:应用程序窗口可显示多个文档窗口。如如WORD2.不同类型的表单不同类型的表单(1)顶层表单:适用于单文档应用程序,可作)顶层表单:适用于单文档应用程序,可作为应用程序的初始界面或其它表单的父表单为应用程序的初始界面或其它表单的父表单(2)子表单:用来创建一个)子表单:用来创建一个MDI应用程序窗口应用程序窗口3.表单类型的指定:设置其表单类型的指定:设置其ShowWindows属性属性
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号