计算机等级 > 二级考试 > Visual FoxPro > VF辅导 > 文章内容

计算机等级考试二级VFP辅导讲义:表单设计与应用

2017-7-5编辑:daibenhua

  知识要点

  1.表单

  表单(Form)就是一个输入或显示某种信息的界面(窗口),是Visual FoxPro提供的用于建立应用程序界面的工具之一。被大量应用于人机交互界面的设计当中。应用表单设计功能,可以设计出具有Windows风格的各种程序界面。由于表单使用非常频繁,所以在VFP中,专门提供了一个表单设计器来设计表单程序。 表单是一个容器,除含有窗口的标准控件标题栏、控制按钮外,可以向表单中添加各种对象,如按钮、文本框、表格、图片等。在表单设计器环境下可以进行添加、删除及布局控件的操作。

  2. 对象

  对象(Object)是反映客观事物属性及行为特征的描述。客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也可以指某些概念。从编程的角度来看,对象是一种将数据和操作过程结合在一起的数据结构,或者是一种具有属性(数据)和方法(过程和函数)的集合体。事实上程序中的对象就是对客观世界中对象的一种抽象描述。每个对象都具有描述其特征的属性,及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。

  (1)对象属性:属性用来表示对象的状态。

  (2)对象方法:对象方法是描述对象行为的过程。

  对象的属性特征标识了对象的物理性质,对象的行为特征描述了对象可执行的行为动作;对象的每一种属性,都是与其他对象加以区别的特性,都具有一定的含义,并赋予一定的值;对象大多数是可见的,也有一些特殊的对象是不可见的。

  3.类

  v 类是对一类相似对象的性质描述,这些对象具有相同种类的属性以及方法就好比是一个摸板。

  对象是类的一个实例。

  v 类的类型

  子类和父类

  v 类的四大特征

  §继承性 —— 说明了子类延用父类特征的能力;

  §多态性 —— 指一些关联的类包含同名的方法程序,但方法程序的内容可以不同,具体调用在运行时根据对象的类确定;

  §封装性 —— 说明包含和隐藏对象信息,如内部数据结构和代 码的能力;

  §抽象性 —— 指提取一个类或对象与众不同的特征,而不对该 类的所有信息进行处理;

  4.子类与继承

  在面向对象的方法里,继承是指在基于现有的类创建新类时,新类继承了现有类里的方法和属性。此外,可以为新类添加新的方法和属性。我们把新类称为现有类的子类,而把现有类称为新类的父类。

  一个子类的成员一般包括:

  (1)从其父类继承的属性和方法。

  (2)由子类自己定义的属性和方法。

  5.基类

  Visual FoxPro 基类是系统本身内含的,并不存放在某个类库中。用户可以基于基类生成所需要的对象,也可以扩展基类创建自己的子类。

  VFP 基类的种类:

  下列表中列出了VFP的基类:

  容器类

  容器类对象

  包容其他类的基类。将容器类的对象无论在设计时还是在运行时,均可以将该容器类的对象作为一个整体进行操作,也可以分别对其包容的对象处理。

  控件类

  控件类 可以包含在容器类中的基类。控件类不能包含其它对象

  类名 o含义 类名 含义

  Active Doc 活动文档 LABEL 标签

  Checkbox 复选框 LINE 线条

  Column (表格)列 LISTBOX 列表框

  Combo box 组合框 OLECONTROL OLE 容器控件

  Command button 命令按钮 OLEBOUNDCONTROL OLE 绑定控件

  Command group 命令按钮组 OPTIONBUTTON 选项按钮

  Container 容器 OPTIONGROUP 选项按钮组

  Control 控件 PAGEFRAME 页框

  Custom 定制 PROJECTHOOK 项目挂钩

  Edit box 编辑框 SEPARATOR 分隔符

  Form 表单 SHAPE 形状

  Form set 表单集 SPINNER 微调控件

  Grid 表格 TEXTBOX 文本框

  Header 列标头 TIMER 定时器

  每个VFP 基类都有自己的一套属性、方法和事件。当扩展某个基类创建用户自定义类时,该类就是用户自定义类的父类,用户自定义类继承该基类中的属性、方法和事件。

  表:基类的最小属性集

  在程序设计中,可以使用CREATE OBJECT函数来直接生成基于某个类的对象。该函数的格式如下:

  CREATE OBJECT(<类名>[,<参数1>,<参数2>,……])

  函数基于指定的类生成一个对象,并返回对象的引用。

  对象属性访问以及对象方法调用的基本格式如下:

  <对象引用>.<对象属性>

  <对象引用>.<对象方法>[(参数列表)]

  【例】基于Visual FoxPro的FORM类生成一个对象,然后访问该对象的一些属性和方法。

  Oform=CREATEOBJECT("Form") &&生成一个空白表单

  Oform.show &&显示表单

  Oform.caption=”演示” &&修改表单的标题

  ?”这是一个生成对象的演示程序” &&在表单上输出字符串

  Oform.release

  例 题

  1.在Visual FoxPro中,表单是_______。

  A.窗口界面 B.一个表中各个记录的清单

  C.数据库中各个表的清单 D.数据库查询的列表

  [解析] 本题考查的知识点是表单的基本知识。在Visual FoxPro中表单实际是一个窗口界面。在Visual FoxPro中各种对话框、向导、设计器等窗口统称为表单。选项B说法错误。一个表中的各个记录的清单不能算是表单。选项C错误,数据库中的表就是表,与表单不同。选项D数据库查询的列表也不能算是表单。

  [答案] A

  2._____是面向对象程序设计中程序运行的最基本实体。

  A.类

  B.对象

  C.方法

  D.函数

  Class

  类名,该类属于何种类型,指当前对象基于那个类而生成。

  BaseClass 基类名,该类的基类,指当前类从那个VFP基类派生而来。

  ClassLibray 类库名,类库文件,指当前类存放在那个类库中 。

  ParentClass 父类名,该类的父类,指当前类从那个类直接派生而来。

  [解析] 本题考查的知识点是面向对象程序设计的基本知识。在Visual FoxPro中,面向对象的程序设计以对象及数据结构为中心。因此对象是面向对象程序设计中程序运行的最基本实体。

  [答案] B

  3 . 对象的______ 是指对象可以执行的动作或它的行为。

  A.方法 B.属性 C.事件 D.控件

  [解析] 本题考查的知识点是对象的基本知识。在Visual FoxPro 中,每个对象都有自己的属性和方法,也可以对一个被称为事件的动作进行识别和响应。对象的属性一般用各种类型的数据来表示。对象的方法是指对象可以执行的动作或它的行为。掌握这这些知识,便很容易选择选项A 正确。选项D 错误,没有“对象的控件”。

  [答案] A

  6.容器和控件

  Visual FoxPro 中的类一般可分为两种类型:容器类和控件类。相应地,可分别生成容器(对象)和控件(对象)。

  控件:

  是一个可以以图形化的方式显示出来并能与用户进行交互的对象。控件常被放置在一个容器里。

  容器:

  容器可以被认为是一种特殊的控件,它能包容其他的控件或容器控件是一个可以以图形化的方式显示出来,并能与用户进行交互的对象,

  【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组有两个命令按钮:

  command1 和command2,label1是表单form1上的一个标签控件。

  如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的标题可用下列命令:

  this.caption=”确定”

  如果要在命令按钮command1的事件代码中修改命令按钮command2的标题可用下列命令:

  thisform.Commandgroup1.command2.caption="取消"

  或者

  this.parent.command2.caption="取消"

  但不能写成下列命令:

  thisform.command2. caption="取消"

  如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令:

  This.Parent.parent.Caption=”测试窗口”

  或者

  thisform.caption=”测试窗口”

  表容器层次中的对象引用属性或关键字

  属性或关键字 引用

  Parent 当前对象的直接容器对象

  This ..ó

  当前对象

  ThisForm μ 当前对象所在的表单

  ThisFormSet μ±当前对象所在的表单集

  7.事件

  事件是一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应反应

  与方法集可以无限扩展不同,事件集是固定的,用户不能定义新的事件

  1.关于Visual FoxPro基类的最小事件集Init的说明正确的是______

  A.当对象产生时引发

  B.当对象从内存中释放时引发

  C.当方法或事件代码出现运行错误时引发

  D.当用户用鼠标单击程序界面上的一个命令按钮时引发

  [解析] 本题考查的是关于事件的知识。只要读者能很好地记住基本知识,就能得出正确答案A。

  [答案] A

  2.Init 事件由______时引发。

  A.对象从内存中释放 B.事件代码出现错误

  C.方法代码出现错误 D.对象生成

  [解析] 本题考查的知识点是Visual FoxPro 中的事件。Init 事件在对象生成时引发。

  选项A 错误,因为从内存中释放对象时引发的事件是Destroy。选项B 和C 错误,因为Error 事件是由事件或方法代码出错时引发。

  [答案] D

  3.在容器对象的嵌套层次中,事件的处理遵循独立性原则,即______。

  A.每个对象识别并处理其他的属性

  B.每个对象识别并处理属于自己的方法

  Init 创建对象时发生的事件。

  从内存中释放对象时发生的事件。

  鼠标左键单击对象时发生的事件。

  Dbclick 鼠标左键双击对象时发生的事件。

  Error 当方法或事件代码出现运行错误时引发。

  鼠标右键单击对象时发生的事件。

  Click

  Rightclick

  C.每个对象识别并处理属于自己的事件

  D.每个对象识别并处理其他的事件

  [解析] 本题考查的知识点是事件的基本知识。在容器对象的嵌套层次中,事件的处理遵循独立性原则,意思是指每个对象识别并处理属于自己的事件。

  选项A 错误,因为对象并不会处理其他的属性。选项B 错误,因为对象不是处理方法而是事件。选项D 错误,因为事件处理的独立性原则只处理并识别自己的事件,不是其他事件。

  [答案] C

  4.在Visual FoxPro 中,当对象方法或事件代码在运行过程中产生错误时将引发______事件。

  A.Load B.Init

  C.Destroy D.Error

  [解析] 本题考查的知识点是事件的应用。在visual FoxPro 中,当对象方法或事件代码在运行过程中产生错误时将引发Error 事件。

  选项A 在表单对象建立之前引发,即运行表单时,先引发表单的Load 事件,再引发表单的Init 事件。选项B 在对象建立时引发。选项C 在对象释放时引发。选项D 当对象方法或事件代码在运行过程中产生错误时引发。

  [答案] D

  5.C1ick事件在______时引发。

  A.用鼠标单击对象 B.用鼠标双击对象

  C.表单对象建立之前 D.用鼠标右键单击对象

  [解析] 本题考查的知识点是事件的应用。在Visual FoxPro中,当用鼠标单击对象时引发C1ick事件。选项B用鼠标双击对象时引发DblClick事件。选项C表单对象建立之前引发Unload。选项D用鼠标右键单击对象时引发RightClick。

  [答案] A

  6.为表单Myform 添加事件或方法代码,改变该表单中的控件Cmd1 的Caption 属

  性的正确命令是______。

  A.THISFORMSET.Cmd1.Caption=“最后一个”

  B.Myform.Cmd1=“最后一个”

  C.THISFORM.Cmd1.Caption=“最后一个”

  D.THIS.Cmd1.Caption=“最后一个”

  [解析] 本题考查的知识点是指定方法和事件程序的操作。在类定义中编写方法和事件程序代码时,不能直接引用表单或控件的名称,因为Visual FoxPro 在根据类定义创建对象时,有它内部的表达式方式,不一定就是用户定义的名称。因此在编写程序代码时要注意用THIS.(引用该对象),THISFORM.(引用包含该对象的表单),THIS.PARENT(引用该对象的直接容器),THISFORMSET.(引用包含该对象的表单集)这些关键字进行相对引用,它们利用快捷方式指明所要处理的对象。选项A 引用对象的表单集,不符合题目要求,因此错误。选项B 格式错误。选项C 正确。选项D由于引用的是对象,因此错误。

  [答案] C

  8.建立表单

  表单(Form)是Visual FoxPro 提供的用于建立应用程序界面的最主要的工具之一。表单相当于WINDOWS 应用程序的窗口。

  表单可以属于某个项目,也可以游离于任何项目之外,它是一个特殊的磁盘文件,其扩展名为.scx。在项目管理器中创建的表单自动隶属于该项目。创建表单一般有两种途径:

  1、使用表单向导创建简易的数据表单;

  2、使用表单设计器创建或修改任何形式的表单。

  (1)使用表单向导

  启动表单向导有以下四种途径:

  1)打开“项目管理器”,选择“文档”选项卡,从中选择“表单”。然后单击“新建”按钮。在弹出的“新建表单”对话框中单击“表单向导”按钮。

  2)在系统菜单中选择【文件】|【新建】命令,或者单击工具栏上的“新建”按钮,打开“新建”对话框,在文件类型栏中选择“表单”。然后单击“向导”按钮。

  3)在系统菜单中选择【工具】|【向导】|【表单】命令。

  4)直接单击常用工具栏上的“表单向导”图标按钮。按步骤依照“表单向导”完成单表表单或一对多表表单的设计

  (2)使用表单设计器

  启动表单设计器有多种方法:

  ● 菜单方法:若是新建表单,在系统 菜单中选择【文件】|【新建】,在文件类型对话框中选择“表单”,单击“新建文件”按钮;若是修改表单,则单击【文件】|【打开】,在打开对话框中选择要修改的表单文件名,单击“打开”按钮。

  ● 命令方法:在COMMAND 窗口输入如下命令:

  CREATE FORM <文件名> &&创建新的表单

  或

  MODIFY FORM <文件名> &&打开一个已有的表单

  ● 在项目管理器中,先选择文档标签,然后选择表单,单击新建按钮。若是修改

  表单,选择要修改的表单,单击“修改”按钮。

  3)设计器窗口

  “表单设计器”窗口内包含正在设计的表单。用户可在表单窗口中可视化地添加和修改控件、改变控件布局,表单窗口只能在“表单设计器”窗口内移动。以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单,如图。

  1.打开表单设计器窗口的命令是______。

  A.CREAT FORM B.CREAT OBJECT

  C.OPEN FORM D.OPEN OBJECT

  [解析] 本题考查的知识点是打开表单设计器的命令的应用。在visual FoxPro中,打开表单设计器窗口的命令是CREAT FORM。选项B是打开表设计器的命令。选项C和D语法错误。

  [答案] A

  2.下列在表单设计器中调用表单生成器的方法不正确的是______。

  A.单击“表单”菜单中的”快速表单”命令

  B.单击表单设计器工具栏上的“表单生成器”按钮

  C.在表单设计器窗口上单击鼠标右键,在弹出的快捷菜单中选择“生成器”命令

  D.单击“表单”菜单中的“表单生成器”命令

  [解析]本题考查的知识点是打开表单生成器的方法。在Visual FoxPro 中,可以通过多种方法打开表单生成器:①单击“表单”菜单中的“快速表单”命令。②单击表单设计器工具栏上的“表单生成器”按钮。③在表单设计器窗口上单击鼠标右键,在弹出的快捷菜单中选择“生成器”命令。选项A,B,C 操作方法都正确,只有选项D 错误,因为“表单”菜单中没有“表单生成器”命令。

  [答案] D

  3.用DO FROM命令运行表单时,如果不加______子句,将会出错。

  A.WITH B.WHERE

  C.FORM D.WAIT

  [解析] 本题考查的知识点是DO FORM命令子句的应用。在Visual FoxPro中,新添加属性newp的初使值为.F.,如果不先给它赋一个数值型数据,将无法进行加减运算。所以在用DO FORM命令运行该表单时,如果不加WITH子句将会出错。

  [答案] A

  4.表单设计器启动后,Visual FoxPro 主窗口上将出现______。

  A.表单设计器和属性窗口

  B.表单控件和表单设计工具栏

  C. “表单”菜单

  D.以上答案均正确

  [解析] 本题考查的知识点是启动表单设计器后窗口中同时出现哪些对象。在Visual FoxPro 中,打开表单设计器后,窗口中将同时出现表单设计器和属性窗口、表单控件和表单设计器工具栏、“表单”菜单,因此正确答案为D。

  [答案] D

  5.下面关于表单窗口的说法不正确的一项是______。

  A.表单窗口包含在表单设计器窗口中

  B.表单窗口可以在主窗口内任意移动

  C.可以在表单窗口中可视化地添加和修改控件

  D.表单窗口只能在表单设计器窗口中移动

  [解析] 本题考查的知识点是表单窗口的基本知识。在Visual FoxPro 中,表单窗口是包含在表单设计器窗口中的窗口,它只能在表单设计器窗口中移动。在表单窗口中可以添加和修改控件。选项C,D 都正确,只有选项B 错误,因为表单窗口只能在表单设计器窗口中移动,不可以在主窗口中移动。

  [答案] B

  4)属性窗口

  表单属性是描述表单特征的参数。程序中的表单作为由它的父类派生的对象,继承了父类的所有属性及其值。用户可以在设计阶段通过属性窗口修改,也可以在程序中通过程序代码修改表单属性的值。

  设计表单的绝大多数工作都是在属性窗口中完成的,因此用户必须熟悉属性窗口的用法。

  如果在表单设计器中没有出现属性窗口,可在系统菜单中单击【显示】|【属性】,属性窗口如图所示。

  页框选项卡

  右击表单页面,选“属性”选项,系统即弹出表单属性窗口,其窗口分以下五部分:

  1.对象列表:该下拉列表中以树形结构分层列出了当前表单及其所包含的对象的名称,单击下拉按钮,可以从中选择表单中的对象。

  2.属性分类选项页:这部分有5个小项目,分别如下:

  ①全部——按字母排序的对象的所有属性。

  ②数据——与对象数据有关的属性。

  ③方法程序——对象的事件触发程序和方法程序

  ④布局——控制对象外观的属性,如颜色等。

  ⑤其他——不属以上②、 ③、 ④各项的属性。

  3.属性列表:列出当前选项页的所有属性名及其取值。单击属性列表中的某一项目,则选中该属性,称为当前属性。

  4.属性值输入框:用来输入或选择当前属性的值。

  5.属性说明:对当前属性的文字解释

  可见,在表单设计器中设置属性值时,需要先在属性窗口的对象列表框中选择要修改的对象,再选择属性分类选项页,找到属性,最后在输入框输入新值。(有时,属性值可以从属性列表选择或通过对话框选择)

  表单的常用属性

  ±í 表单背景色

  BackColor RGB 三色值

  为真时,表单居中打开 AutoCenter .T. .F.

  字串表单标题/窗口标题Caption

  ±íμ¥表单名,用于程序代码 Name 字串

  取值 作用

  属性设置

  控件属性的设置方法与表单属性相同,可以采用两种方法:一是在属性窗口设置——先从对象列表中选择对象,再在下面的属性列表中选择要设置的属性,在窗口中间的属性值输入框中输入(或从下拉列表、用该文件作为表单背景

  Picture Bmp 文件名

  表单是否允许移动

  Moveble .T. .F. ˉ

  表单的初始状态:

  0:普通;1:最小化;2:最大化 0,1,2

  Windowstate

  Height,Width 数值 表单的高和宽

  Left,Right 数值 表单左上角坐标

  ×作用

  取值

  对话框中选取);二是通过属性赋值语句完成,根据引用方式的不同,属性赋值命令的格式有绝对引用格式和相对引用格式两种,分别如下:

  (1)绝对引用:

  包含对象的各层容器名.对象名.属性名=值

  (2)相对引用:

  This.属性名=值

  或:

  Thisform.表单内包含对象的各层容器名.对象名.属性名=值

  设置属性值也可以在程序代码中实现,例如:

  Form1.BackColor=RGB(255,0,0)

  THISFORM.Caption=“学生数据录入”

  可分别设置表单的背景色和标题。

  Thisform.Picture=“c:\windows\setup.bmp”

  可用来设置当前表单的背景。

  5)表单控件工具栏

  设计表单的主要任务就是利用“表单控件”设计交互式用户界面。“表单控件”工具栏是表单设计的主要工具。默认包含21个控件、4个辅助按钮,如图所示。

  1.如果要为控件设置焦点,则控件的Enabled 属性和____属性必须为.T.

  A.Buttons B.Cancel

  C.Default D.Visible

  [解析] 本题考查的知识点是设置控制焦点的属性的使用。在Visual FoxPro中,对象被指定,它就获得了焦点,焦点的标志可以是文本框的光标、命令按钮内的虚线框等。如果要为控制设置焦点,其Enabled 和Visible 属性必须为.T.。

  Enabled 属性决定对象是否可用,Visible 属性决定对象是可见或是隐藏。掌握这些知识,一看便知正确答案为D。

  [答案] D

  2.在Visual FoxPro 中,组合框分为____和____。

  A.下拉选项框和下拉列表框

  B.下拉选项框和下拉组合框

  C.下拉列表框和下拉组合框

  D.列表框和下拉组合框

  [解析] 本题考查的知识点是组合框的分类。在Visual FoxPro 中,组合框分为下拉列表框和下拉组合框。选项A 和B 中下拉选项框的说法不对。选项C 说法正确。选项D 中的列表框不正确,列表框包括在组合框中。

  [答案] C

  3.在Visual FoxPro 中,选项组又称为______,它是______。

  A.选项按钮组,包含选项按钮的一种控件

  B.选项按钮组,包含选项按钮的一种按钮

  C.选项按钮组,包含选项按钮的一种容器

  D.选项按钮组,包含选项按钮的一种按钮组

  [解析] 本题考查的知识点是Visual FoxPro 中选项组的基本知识。在VisualFoxPro 中,选项组又称为选项组按钮,它是包合选项组按钮的一种容器。此类型的题目要求考生熟练掌握各种容器的基本知识。

  [答案] C

  4.下列关于表单控件基本操作的叙述中,不正确的一项是______。

  A.要在“表单控件”工具栏中显示某个类库文件中自定义类,可以单击工具栏中的“查看类”按钮,然后在弹出的菜单中选择“添加命令”

  B.要在表单中复制新控件,可以按住[Ctrl]键并拖放该控件

  C.当表单运行时,用户可以按[Tab]键选择表单中的控件,控件的Tab 次序决定了选择控件的次序

  D.要使表单中所有控件具有相同的大小,可单击“布局”工具栏中的“相同大小”按钮

  [解析] 选项B 错误。因为B 项的操作实际上是移动控件,只是在施动鼠标的同时按住[Ctrl]键,可“使鼠标移动步长减小,复制控件的操作是:先选定控件,接着选择“编辑”菜单中“复制”命令,然后选择“编辑”菜单中“粘贴”命令,最后将复制产生的新控件拖动到需要的位置。

  [答案] B

  5.下列关于标签(Label)控件和其属性的说法中,错误的是______。

  A.在设计代码时,应用name 属性值而不能用Caption 属性值来引用对象

  B.在同一作用域内两个对象可以有相同的Caption 属性值,但不能有相同的name 属性值

  C.用户在表单或控件对象中,可以分别重新设置name 属性值和Caption属性值.

  D.对于标签控件,按下相应的访问键,将激活该控件,使该控件获得焦点

  [解析]选项D 错误。对于标签控件而言,按下相应的访问健将把焦点传递给Tab键次序中紧跟着标签的下一个控件。这在某些场合是很有用的,比如。在某个列表框的上方放置一个标签,并把列表框的Tab 键次序安排在标签之后,这样,当按下标签访问键时,其下边的列表框将获得焦点。

  [答案] D

  6.下列对控件类的叙述中,不正确的一项是______。

  A.可以对控件类对象中的组件单独进行修改或操作

  B.控件类一般作为容器类中的控件

  C.控件类的封装性比容器更加严密

  D.控件类用于进行一种或多种相关的控制

  [解析] 本题考查的知识点是控件类的基本知识。在Visual FoxPro 中,控件类用于进行一种或多种相关的控件,其封装性比容器类更加严密,但灵活性比容器类差。它的对象必须作为一个整体来访问或处理,不能单独对其中的组件进行修改或操作。控件类一般作为容器类中的控件来处理。

  选项B,C,D 的说法都正确,只有选项A 错误,因为控件类的对象必须为一个整体来访问或处理,不能单独对其中的组件进行修改或操作。

  [答案] A

  7.在“文本框生成器”中的“样式”选项卡中选定“平面”复选框,相当于____。

  A.将Special Effect 属性值设置为Plain

  B.将Special Effect 属性值设置为3D

  C.将Border Style 属性值设置为l

  D.将Border Style 属性值设置为0

  [解析] 本题考查的知识点是控件属性与对话框上属性的对应。

  在“文本框生成器”中的“样式”选项卡中选定“平面”复选框相当于将SpecialEffect 属性值设置为Plain,因此选项A正确。选项B错误在于将special Effect属性值设置为3D,相当于选定“三维”复选框。选项C 错误在于将BorderStyle属性值设置为1,相当于选定“单线”复选框。选项D 错误在于将BorderStyle 属性值设置为0,相当于选定“无”复选框。

  [答案] A

  8.在程序中用WITH MyForm…ENDWITH 修改表单对象的属性再显示该表单,其中“…”处的正确代码应为______。

  A.Width=500

  B.THISForm.Width=500 Show THISForm.Show

  C.MyForm.Width=500

  D.Width=500 MyForm.show .Show

  [ 解析] 本题考查的知识点是WITH…ENDWTH 命令的应用。WITH…ENDWITH 命令中可以重新指定对象的各种属性,也可以执行对象方法。属性和方法的左边必须有字符“.”。

  选项A,B,C 中的属性和方法的左边都没有“.”,所以错误。因此正确答案为D。

  [答案] D

  9.Show 方法用来将______。

  A.表单的Enabled 属性设置为.F.

  B.表单的Visible 属性设置为.F.

  C.表单的Visible 属性设置为.T.

  D.表单的Enabled 属性设置为.T.

  [解析] 本题考查的知识点是Show 方法的使用。在Visual FoxPro 中,Show方法表示显示菜单,它将表单的Visible 属性设置为.T .,并使表单成为活动对象。选项A 错误,Enabled 属性用来指定表单或控件能否响应由用户引发的事件, 当设置为.T.时,表示对象是有效的,能被选择,能响应用户引友的事件。选项B错误,因为Visible 属性用来指定对象是可见或是隐藏,设置为.F .,表示对象是隐藏的。选项C 正确,将Visible 属性设置为.T .,表示对象是可见的。选项D 错误,因为将表单的Enabled 属性设置为.T.,表示对象是有效的,能被选择,能响应用户引发的事件。

  [答案] C

  10.在Visual FoxPro 中,如果一个控件的______和______属性值为.F.,将不能获得焦点。

  A.Enabledhe 和ContorlSource

  B.Enabled 和C1ick

  C.ContorlSouce 和 C1ick

  D.Enabled 或Visible

  [解析] 本题考查的知识点是焦点的基本知识。在Visual FoxPro 中,对象被选定,它就获得了焦点,焦点的标志可以是文本框内的光标、命令按钮内的虚线框等。焦点可以通过单击对象获得,可以按Tab 健切换对象来获得,也可以用代码方式为控件设置焦点。

  选项A 错误,因为ContorlSource 属性用来指定字段来自数据环境中的表。选项B 错误,因为C1ick 是事件。选项C 错误,因为Contorlsource 属性用来指定字段来自数据环境中的表,Click 是事件。

  选项D 正确,因为Enabled 属性决定对象是否可用,Visible 属性决定对象是可见或是隐藏。

  [答案] D

  11.在Visual FoxPro 中,Width 属性只能接收______数据。

  A.数值型

  B.字符型

  C.逻辑型

  D.任意型

  [解析] 本题考查的知识点是控件属性接收的数据类型。在Visual FoxPro 中,width 属性用来设置控件的宽度,它只能接收数值型数据。选项B,C,D 都错误。

  [答案] A

  12.运行表单时,可以按______键选择表单中的控件,使焦点在控件间移动。

  A.Ctrl

  B.Enter

  C.A1t

  D.Tab

  [解析] 本题考查的知识点是利用键盘按键使焦点在控件间移动。在VisualFoxPro 中,使焦点在控件间移动的快捷健是[Tab]键。因此正确答案为D。

  [答案] D

  13.一般情况下,运行表单时,在产生了表单对象后,将调用表单对象的______方法显示表单。

  A.Release

  B.Refresh

  C.SetFocus

  D.Show

  [解析] 本题考查的知识点是表单及其控件的常用方法。其中Release 方法将表单从内存中释放;Refresh 方法重新绘制表单或控件,并刷新它的所有值;SetFocus 方法让控件获得焦点;只有Show 方法用于显示表单,故正确答案为D。

  [答案] D

  14.对于表单及控件的绝大多数属性,其数据类型通常是固定的,如Caption 属性接收______。

  A.数值型数据

  B.字符型数据

  C.逻辑型数据

  D.任意数据类型

  [解析] 因为Caption 属性只能接收字符型数据,故正确答案为B。

  [答案]B

  6)表单设计器工具栏

  .... 系统在打开表单设计器的同时会自动打开表单设计工具栏。通过工具栏可以快速启动表单设计中常用的工具和对话窗口。

  .... 其中“表单生成器”工具可以为新建的表单调出表单向导的窗口,利用表单向导生成表单。

  .... 自动格式窗口可以选择合适的样式,对表单及控件的颜色、字体、布局等快速进行格式化。

  1.在表单控件中,输出类控件有____、____、____、_____。

  [解析] 本题考查的知识点是表单控件的分类。在Visual FoxPro 中,根据控件的基本功能,可将控件分为5 类:输出类控件、输入类控件、控制类控件、容器类控件、暂连接类控件。其中输出类控件有:标签、图像、线条、形状。

  [答案] 标签、图像、线条、形状

  2.在表单控件中,输入类控件有_____、_____、_____、_____、____。

  [解析] 本题考查的知识点是表单控件的分类。在Visual FoxPro 中,输入类控件有:文本框、编辑框、列表框、组合框、微调控件。

  [答案] 文本框,编辑框,列表框,组合框、微调控件

  3.在表单控件中,控制类控件有____、____、____、____、____。

  [解析] 本题考查的知识点是表单控件的分类。在Visual FoxPro 中,控制类控件有:命令按钮、命令按钮组、复选框、选项按钮、计时器。

  [答案] 命令按钮,命令按钮组,复选框,选项按钮,计时器

  4.在表单控件中,容器类控件有____、____、____。

  [解析] 本题考查的知识点是表单控件的分类。在Visual FoxPro 中,容器类推件有:表格,页框,OLE 容器。

  [答案] 表格,页框,OLE 容器

  5.在表单控件中,连接类控件有____、____、____。

  [解析]本题考查的知识点是表单控件的分类。在Visual FoxPro 中,连接关控件有:ActiveX控件、ActiveX 绑定控件、超级链接。

  [答案] ActiveX 控件,ActiveX 绑定控件,超级链接

  6.利用____可以添加、删除及布局控件。

  [解析] 本题考查的知识点是表单的功能。表单(Form)是Visual FoxPro 中用于建立应用程序界面的工具。在表单设计器环境下,可以添加、删除、布局控件。

  [答案] 表单

  7.利用____中的按钮可以对选定的控件进行居中、对齐等操作。

  [解析] 本题考查的知识点是工具栏上各按钮的使用。对控件进行居中、对齐等操作是在布局工具栏上进行的。

  [答案] 布局工具栏

  8.在命令窗口中输入____命令,即可打开表单设计器。

  [解析] 本题考查的知识点是打开表单设计器的命令。在Visual FoxPro 中,打开表单设计器的命令是CREATE FORM。

  [答案] CREATE FORM

  9.编辑框控件与文本框控件的区别是:在编辑框中可以输入或编辑____文本,而在文本框中只能输入或编辑____文本。[解析] 本题考查的知识点是编辑框控件和文本框控件的主要区别。在Visual FoxPro 中,编辑框控件和文本框控件有相似之处也有不同之处,不同之处表现在:①编辑框只能输入、编辑字符型数据,包括字符型内存变量、数组元素、字段及备注字段里的内容。②文本框中一般包

  合一行数据。编辑行可以包含多行数据。

  [答案] 多行,一行

  10.如果想在表单上添加多个同类型的控件,则可在选定控件按钮后单击____按钮,然后在表单的不同位置单击,就可以添加多个同类型的控件。

  [解析] 本题考查的知识点是在表单上添加多个同类型的控件的操作。如果想在表单上添加多个同类型的控件,则可在选定控件按钮后单击按钮锁定按钮,然后在表单的不同位置单击,就可以添加多个同类型的控件。

  [答案]按钮锁定

  11.控件的数据绑定是指将控件与某个____联系起来。

  [解析] 本题考查的知识点是控件的数据绑定的含义。在Visual FoxPro 中,控件的数据绑定是指将控件与某个数据源联系起来。

  [答案]数据源

  12.在表单中添加控件后,除了通过属性窗口为其设置各种属性外,也可以通过相应的____为其设置常用属性。

  [解析] 本题考查的知识点是为控件设置属性的方法。在表单中添加控件后,除了通过属性窗口为其设置各种属性外,也可以通过相应的生成器为其设置常用属性。

  [答案] 生成器

  13.要编辑容器中的对象,必须首先激话容器。激活容器的方法是____。

  [解析] 本题考查的知识点是激活容器的方法。在Visual FoxPro 中,激活容器的方法是:用鼠标右键单击容器,在弹出的快捷菜单中选择“编辑”命令。

  [答案] 用鼠标右键单击容器,在弹出的快捷菜单中选择“编辑”命令

  14.每个Visual FoxPro 基类都有自己的____、____、_____、

  [解析] 本题考查的知识点是Visual FoxPro 中的基类。在Visual FoxPro 中,每个基类都有自己的属性、方法和事件。

  [答案] 属性、方法、事件

  15.在Visual FoxPro 环境下,要进行面向对象的程序设计或创建应用程序,必然要用到Visual FoxPro 系统提供的基础类,即____。

  [解析] 本题考查的知识点是Visual FoxPro 中的基础知识。在Visual FoxPro中,基础类即基类。

  [答案] 基类

  16.表单文件的扩展名为____;表备注文件的扩展名为____。

  [解析] 本题考查的知识点是表单文件和表备注文件的扩展名。在VisualFoxPro 中,表单文件的扩展名为.scx;表备注文件的扩展名为.sct。

  [答案] .SCX,.SCT

  17.在Visual FoxPro 中,标签控件的标题文本最多可包含的字符数目有____个。

  [解析] 本题考查的知识点是标签控件的标题文本最多可包含的字符数目。

  Visual FoxPro 规定,标签控件的标题文本最多可包合的字符数目是256 个。

  [答案] 256

  18.在设计代码时,应该用____属性值而不能用______属性值来引用对象;在同一作用域内两个对象可以有相同的____属性值,但不能有相同的____属性值。

  [解析] 本题考查的知识点是Caption 和Name 属性值的使用。系统规定,在设计代码时,应该用Name 属性值而不能用Caption 属性值来引用对象;在同一作用域内两个对象可以有相同的Caption 属性值,但不能有相同的Name 属性值。

  [答案] Name, Caption, Caption, Name

  19.将标签控件的A1ignment 属性设置为0 表示____;设置为1 表示____;设置为2 表示____。 .

  [解析] 本题考查的知识点是标签控件的A1ignment 属性的设置。标签控件的A1ignment 属性的设置值有三个:0、1、2。0 表示左对齐,l 表示右对齐。2 表示居中对齐。

  [答案] 左对齐、右对齐、居中对齐

  9. 数据环境

  表单的运行往往需要打开一定的数据表和关联,VFP 提供的数据环境可以在表单打开时自动打开设计时指定的数据表和关联。数据环境的设计在表单设计时完成。

  (1).打开数据环境设计器

  ·表单设计器环境下,单击“表单设计器”工具栏上的“数据环境”按钮;

  ·选择【显示】|【数据环境】命令,即可打开“数据环境设计器”窗口,此时,系统菜单栏上将出现“数据环境”菜单。

  ·在表单设计器中右击鼠标,选择快捷菜单中的“数据环境…”。打开数据环境设计器,从中就可以向数据环境中添加希望打开表单时一同打开的数据表和视图。

  在数据环境设计器中,向数据环境添加数据表或视图的方法有多种:

  ·从菜单“数据环境”中选择“添加”,打开“添加表或视图”对话框,从中选择。

  ·右单击数据环境设计器页面,选择“添加”

  ·激活项目管理器窗口,选“数据”选项页,展开数据树,找到要添加的数据表或视图,拖到数据环境设计器中。

  ·右单击添加到数据环境中的数据表标题,选择“移去”,可将数据表从数据环境中移走。

  (2).数据环境中的数据表或视图建立关联的方法:

  将父表的关键字段拖到子表的要建立关联的索引名上即可。 如果子表未建立所需索引,可以在拖动到子表的字段名上,系统提示是否建立索引时,选“是”即可。

  (3).数据环境的常用属性

  数据环境实际上是其所属表单的一个容器类对象,具有完整的属性集和方法程序。

  常用的两个数据环境属性是:

  AutoOpenTables

  AutoCloseTables

  (4).向数据环境添加表或视图在数据环境设计器环境下,按下列方法向数据环境添加表或视图:

  在系统菜单中选择【数据环境】|【添加】命令,或右键单击“数据环境设计器窗口”,然后在弹出的快捷菜单中选择【添加】命令,打开“添加表或视图”对话框,如图所示。如果数据环境原来是空的,那么在打开数据环境设计器时,该对话框就会自动出现。选择所需表,单击“添加”

  10.事件与方法过程

  ·事件:当操作者对某一对象进行某种操作时,就会产生一个与此动作相关的事件,激发事件过程的执行,完成操作目的。比如单击按钮时,该按钮就发生了一个按钮事件,假设这是一个对数据库排序的按钮,那么程序员就应该在该按钮的单击(click)事件中加入排序的程序代码。可视化开发的任务之一就是编写事件程序实现软件的功能。所以,掌握常用控件的常用事件是学习的任务之一。

  ·方法:对象包含一些完成特定工作的过程,允许程序员在事件过程中调用,这样的过程成为方法。比如:调用表单的Circle 方法,可以在表单上画一个圆。对比而言,方法过程只能被其他过程调用,事件过程主要是被事件触发,也可以被调用。

  ·不同的对象有不同的方法集,对象的事件和方法 名称都列在该对象的属性窗口的“方法程序”选项页中,双击事件或方法名称就可以启动代码窗口,编写相应的过程程序

  ·常用的表单事件与方法:

  方法程序 作 用

  Click Event 单击表单事件

  Dbclick Event 双击表单事件

  Error Event 运行表单事件出错的事件

  Hide 隐藏表单的方法

  Init Event 表单初始化事件

  Keypress Event 按键时发生的事件

  Init Event——表单初始事件,是运行表单时首先执行的事件过程,所以表单的变量定义、初值的设定、数据表的打开等,可以在该事件过程中完成。在该事件过程中,也可以利用参数,接收上级程序的数据。例如,在该事件过程加入以下语句:

  PARAMETERS a1,a2

  THISFORM.Caption=a1

  THISFORM.BackColor=RGB(a2,0,0)

  则可以这样调用:

  DO FORM “d:\vfp\form1” WITH “我的表单” 255

  常用的表单事件与方法(续):

  方法程序 作 用

  Load Event 运行表单之前发生的事件

  Move 表单的移动方法

  Refresh 表单刷新的方法

  Release 表单释放的方法

  RightClick Event 右击表单事件

  Unload Event 释放表单时发生的事件

  Unload Event——表单释放时产生的事件。在该事件中可以加入一些表单执行结束时的善后工作。如果表单有返回值,可在此事件程序中的RETURN 语句中指定。如:form2.scx 的Unload中有

  RETURN cvalue

  则调用命令如下:

  DO FORM “form2” TO value1

  (此种情况下,表单的WindowType 应设为1)

  11.表单的保存和运行

  (1). 保存表单

  修改后的表单或新建的表单在关闭时系统会提问用户是否保存,回答“是”并指定文件名,即可保存表单。

  (2). 运行表单

  表单可以在表单设计器中或项目管理器中运行;但最常用的还是使用DO FORM 命令运行表单。其格式是:

  DO FORM <表单文件名>

  12. 控件的添加

  在表单设计器中,可以使用多种方法在表单中添加控件。

  (1). 使用控件工具栏添加 使用控件工具栏的步骤是:

  ①选取控件②在表单拖动鼠标“画”出控件

  (2). 在容器对象中添加控件 根据包含的控件是既定的(如页框)还是不确定的(如页),容器分为两类。 对于前者,改大这种容器中表示内部控件数目的属性值即可添加控件;对于后者,添加方法与表单相同。

  下面列出了容器控件的控件数目属性及是否可以由程序员对其进行修改。

  13.控件的格式化

  表单控件的格式化,是指对表单中的控件进行增、删以及设置其大小、对齐、置前置后、格线等,通过这些处理,可使控件的大小适宜,布局合理、美观。

  (1).控件的选定

  单个控件选定:单击控件或从属性选项页的对象列表中选择名称来选定控件

  多个控件选定:使用Shift 键

  属性选项页的当前属性是当前选定对象的属性。

  (2). 控件大小与位置的调整

  1)拖动尺寸柄;按住控件的其他位置拖动

  2)使用四个方向键;按住SHIFT 使用四个方向键

  3)修改TOP,LEFT,WIDTH,HEIGHT 属性值

  (3). 控件的删除

  使用DEL;使用编辑菜单的“清除”

  (4). 表单编辑中的“格式”菜单:处理主要有:

  容器名称 控件个数属性初值 是否可改

  PageFrame PageCount 2 Y

  Page ControlCount 2 N

  Gid ColumnCount -1 Y

  Container ControlCount 0 N

  CommanGroup ButtonCount 2 Y

  Optiongroup ButtonCount 2 Y

  1)设置网格线

  2)对齐网格线

  3)对齐:

  4)大小

  5)垂直间距和水平间距

  6)置前置后

  (5). 控件颜色的设置

  14. 控件的Tab 键次序

  (1). 什么是Tab 键次序?

  在Windows 中,用Tab 键可使插入点(编辑点)由一个项目跳转到另一个(用Shift+Tab 可以反向跳转),到底跳转到那一个项目上,是由Tab键次序决定的。在表单中,由于有多个控件,因此也存在Tab 键次序问题。

  (2).设置Tab 键次序

  表单中默认的Tab 次序是控件的添加次序。

  对控件的Tab 次序重新设置的方法是:进入容器→选择“显示”→选择“Tab 键次序”→按住Tab 键以新的次序单击各控件→松开Tab 键→单击任意位置结束。

  注意:

  (1)次序从 1 开始排列,由控件的TabIndex 属性确定;

  (2)有些控件没有TabIndex 属性;

  (3)有的控件有TabIndex 属性,但运行时按Tab 键焦点不在其上停留;

  (4)表格内的对象不再进行Tab 设置。

  15. 控件的生成器

  在表单上添加控件后,右单击该控件,在弹出的快捷菜单上选择“生成器……”,可以快速设置控件的样式、与变量或字段等的捆绑、确定数据输入格式等。

  可以使用控件生成器的控件有:Text(文本框)、Edit(编辑框)、CommandGroup(按钮组)、OptionGroup(选择按钮组)、ComboBox(组合框)、Listbox(列表框)、Grid(表格)等。

  16.常用表单控件

  (1). 常用控件的公共属性

  name:控件的名称,它是代码中访问控件的标识(表单或表单集除外)。

  Fontname:字体名。

  Fontbold:字体样式为粗体。

  Fontsize:字体大小。

  Fontitalic:字体样式为斜体。

  Forecolor:前景色。

  Height:控件的高度

  Width:控件的宽度。控件的高度和控件的宽度,也可在设计时通过鼠标拖曳进行可视化调整。

  Visible:控件是否显示。

  Enable:控件运行时是否有效。如果为 .T.,则表示控件有效,否则运行时控件不可使用。

  (2). 标签(Label)控件

  1).标签控件的功能

  标签主要用于显示固定的文本信息。

  2).标签控件常用属性

  caption: 指定标签的显示文本。可以在设计时设置,也可以在程序运时设置或修改。

  Forecolor:设置标题的字体颜色。

  Backstyle:设置标签的背景是否透明,0 透明,1 不透明,默认为不透明。

  name :标签对象的名称,是程序中访问标签对象的标识。

  Alignment:指定标题控件中显示的对齐方式。

  (3). 命令按钮(CommandButton)控件

  1).命令按钮控件功能

  命令按钮形象直观,所以命令按钮典型地用来启动某个事件代码、完成特定功能,如关闭表单、移动记录指针、打印报表等。

  2).命令按钮控件常用属性

  Default:命令按钮的Default 属性默认值为.F.,如果该属性设置为.T.,在该按钮所在的表单激活的情况下,按Enter,可以激活该按钮,并执行该按钮的Click 事件代码。一个表单只能有一个按钮的Default属性为真。

  Cancel:命令按钮的Cancel 属性默认值为.F.,如果设置为.T.,在该按钮所在的表单激活的情况下,按Esc 键可以激活该按钮,并执行该按钮的Click 事件代码。一个表单只能有一个按钮的Cancel 属性为真。

  Caption:设置按钮的标题。

  Enable:确定按钮是否有效,如果按钮的属Enable 为.F.,单击该按钮不会引发该按钮的单击事件。

  对命令按钮的使用最重要的是编写Click 事件代码。

  (4). 命令按钮组(CommandGroup)控件

  1).命令按钮组功能

  命令按钮组是包含命令按钮的容器类控件,它把多个作用相近或联系密切的按钮放到一起,用户可以单个或作为一组来操作其中的按钮,有利于表单的统一安排。

  2).命令按钮组常用属性

  .... Buttoncount:命令按钮组中命令按钮的数目。

  .... Buttons:用于存取命令按钮组中每个命令按钮的数组,代码中可以通过该数组访问命令按钮组中的各个按钮。

  ·Value:默认情况下,命令按钮组中的各个按钮被自动赋予了一个编号,如1,2,3,等,当运行表单时,一旦用户单击某个按钮,则Value将保存该按钮的编号,于是在程序中通过检测Value 的值,就可以为相应的按钮编写特定的程序代码。如果在设计时,给Value 赋予一个字符型数据,当运行表单时,一旦用户单击某个按钮,则Value 将保存该按钮的Caption 属性值。

  3) 从按钮组的快捷菜单中选择“编辑”,可以分别处理各按钮。

  4) 对按钮组中的对象的引用可采用两种办法:

  ① 直接引用按钮名, 如:

  THISFORM.CommandGroup1.Command1.Enabled=.F.

  ②按照按钮的顺序号来引用,如:

  FOR I=1 TO 4

  THISFORM.Mycmdgroup.Button(I).ForeColor=RGB(255,0,0)

  ENDFOR

  这里,Button 是命令按钮组的一个方法,为按钮列表数组,Button(I)表示按钮组中的第I 个按钮。

  (5). 文本框(TextBox)控件

  1).文本框控件的功能:

  ①用于显示或接收单行文本信息(不设置ControlSource 属性),默认输入类型为字符型,最大长度为256 个字符。

  ②用于显示或编辑对应变量或字段的值(设置ControlSource 属性为已有变量或字段名)

  2).文本框控件常用属性

  .... ControlSource:设置文本框的数据来源。一般情况下,可以利用该属性为文本框指定一个字段或内存变量。

  .... Value:保存文本框的当前内容,如果没有为ControlSource 属性指定数据源,可以通过该属性访问文本框的内容。它的初值决定文本框中值的类型。如果为ControlSource 属性指定了数据源,该属性值与ControlSource 属性指定的变量或字段的值相同。

  .... PassWordChar:设置输入口令时显示的字符。

  .... Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。

  3). 常用的事件过程

  .... GetFocus Event:获得焦点后发生。

  例如:

  THIS.SelStart=0

  THIS.SelLength=LEN(ALLTRIM(THIS.value)

  .... When Event:获得焦点前发生,返回逻辑值。

  例如:

  IF THIS.Value>500

  =MESSAGEBOX(“数据已经很大,不允许再编辑”)

  ENDIF

  RETRUN THIS.Value<=500

  .... Valid Event: 失去焦点之前发生,常用于进行数据合法性检查,返回一个逻辑值,为假时不允许失去焦点。

  例:

  RETRUN THIS.Value>=200 and THIS.Value<=300

  .... LostFocus Event: 控件失去焦点时发生的事件。此过程与Valid 基本相同,但是不进行合法性检验。

  4). 文本框生成器

  右单击文本框,可通过快捷菜单打开文本框生成器。

  【例】创建一个如图所示的登录窗口,并将表单保存为FORM2。

  在“确定”按钮的单击事件中输入如下代码:

  If thisform.text1.value="user1“ and thisform.text2.value="123456"

  do form mainform

  form2.release

  else

  messagebox("密码或用户名错误",0,"提示")

  endif

  在“取消”按钮的单击事件中输入如下代码:

  nAnswer=messagebox("你决定退出系统吗?",4,"提示")

  DO CASE

  CASE nAnswer = 6

  thisform.release

  CASE nAnswer = 7

  messagebox("请输入用户名和密码",0,"提示")

  ENDCASE

  (6).编辑框(EditBox)控件

  1).编辑框控件的功能

  用于显示或编辑多行文本信息。编辑框实际上是一个完整的简单字处理器,在编辑框中能够选择、剪切、粘贴以及复制正文,可以实现自动换行,能够有自己的垂直滚动条。

  2).编辑框常用属性

  .... ControlSource:设置编辑框的数据源,一般为数据表的备注字段。

  .... Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。

  .... SelLength:返回用户在文本输入区中所选定字符的数目。

  .... SelText:返回用户在编辑区内选定的文本,如果没有选定任何文本,则返回空串。

  .... Readonly:确定用户是否能修改编辑框中的内容。

  .... Scroolbars:指定编辑框是否具有滚动条,当属性值为0时,编辑框没有滚动条,当属性值为2(默认值)时,编辑框包含垂直滚动条。

  (7). 复选框(CheckBox)控件

  1).复选框的功能

  用于标识一个两值状态,如真(.t.)或假(.f.)。当处于“真”状态时,复选框内显示一个对勾,当处于“假”状态时复选框内为空白。

  2).复选框常用属性

  .... Value:用来指明复选框的当前状态,如下表

  .... ControlSource 属性:用于指定复选框的数据源

  (8). 选项组(OptionGroup)控件

  1).选项组控件的功能

  选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户单击某个选项按钮时,该按钮即成为被选中状态,而选项组中的其他选项按钮,不管原来是什么状态,都变为未选中状态,被选中的选项按钮中会显示一个圆点。

  2).选项组常用属性

  .... ButtonCount:指定选项组中选项按钮的数目。

  .... Value:用于指定选项组中哪个选项按钮被选中。

  .... Buttons:用于存取选项组中每个选项的数组。

  .... ControlSource: 指定选项组数据源。

  将该属性值设为一个字符型变量或字段变量名,就可以把选定的选项文字自动存入变量,变量的值也会使文字相同的选项自动被选中。如:把表中“性别”字段的取值——男、属性值 说明

  0或.F. (默认值),未被选中

  1或.T. 被选中

  >=2或null 不确定,只在代码中有效

  女设为选项钮的Caption ,把选项按钮组的ControlSource 设为“性别”,就可以为性别字段输入输出。

  【例1】:

  设计一个课程查询表单,在表单中使用单选按钮控件和按钮、文本框。

  打开表单设计器,使用表单控件工具栏、属性窗口、数据环境设计器,进行以下操作:

  (1)设计、定义表单属性:

  Caption=课程查询

  Name= Form1

  Visable =.T.

  (2)在表单中添加一个选择按钮组,在其中用两个选择按钮:

  AutoSize=.T.

  ControlSize=无

  Name= OptionGroup1

  Visable=.T.

  l“课程号”按钮

  Caption=课程号

  Name= Opti1

  AutoSize=.T.

  ClickEvent=用户自定义过程

  Style=0-标准

  Value=.T.

  l“课程名”按钮

  Caption=课程名

  Name= Opti2

  Autosize=.f.

  ClickEvent=用户自定义过程

  Style=0-标准

  Value=.f.

  (3)添加一个文本框用来输入课程号:

  Name= Text1

  AutoSize=.t.

  ClickEvent=用户自定义过程

  Style=0-标准

  Value=1

  FontSize=8

  Format=1

  InitEvent=用户自定义过程

  InputMask=无

  MaxLenth=7

  Seconds=2-默认

  SelectOnEntry=.T.

  TabIndex=0

  (4)添加一个文本框用来输入课程名称:

  NAME= Text2

  Alignment=0

  Autosize=.t.

  ClickEvent=用户自定义过程

  ControlSource=无

  DateFormat=14-汉语

  Enabled=.T.

  HideSelection=.F.

  Style=0-标准

  FontSize=10

  Format=K

  InitEvent=用户自定义过程

  InputMask=无

  MaxLenth=8

  PasswordChar=无

  ReadOnly=.F.

  Seconds=2-默认

  SelectOnEntry=.T.

  Style=0

  TabIndex=4

  Visable=.T.

  (5)添加“开始”命令按钮:

  NAME= Command1

  AutoSize=.F.

  ClickEvent=用户自定义过程

  Enabled=.T.

  Style=0-标准

  FontSize=9

  Style=0

  TabIndex=2

  Visable=.T.

  (6)添加“退出”命令按钮:

  NAME= Command2

  Autosize=.F.

  ClickEvent=用户自定义过程

  Enabled=.T.

  Style=0-标准

  FontSize=9

  Style=0

  TabIndex=2

  Visible=.T.

  Caption=退出

  (7)为“开始”按钮Click 事件编写代码:

  cxp1=this.parent.optiongroup1.opti1.value

  cxp2=this.parent.optiongroup1.opti2.value

  value1=this.parent.text1.value

  value2=this.parent.text2.value

  (8)为“退出”按钮Click 事件编写代码:

  Thisform Release

  结果如图所示。

  本例题设计时应注意:“课程号”按钮与文本框一、“课程名”按钮与文本框二在使用上的配合一致性,在编写“开始”按钮程序代码时应严谨统一。

  【例2】命令按钮组、选项组、复选框、编辑框应用示例,按下图设计一个表单,要求:

  用户单击确定按钮时,在编辑框中显示用户对选项组和复选框的选择。并将表单保存为

  FORM3

  编写事件代码

  选择命令按钮组,在属性窗口中双击“CLICK EVENT”属性,系统会打开代码编写器,在代码编写器窗口为“CLICK EVENT”事件输入如下代码:

  if thisform.commandgroup1.value=2

  thisform.release

  else

  cstr="你所在城市";

  +thisform.optiongroup1.buttons[thisform.optiongroup1.value].caption

  cstr=cstr+"你的爱好"

  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

  (9)列表框(ListBox)控件

  1).列表框的功能

  列表框提供一组条目(数据项),用户可以从中选择一个或多个条目,一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。

  2).选项组常用属性

  列表可以一列,也可以多列,但只能有一列的数据和Value 属性的值捆绑。

  .... RowSourceType 属性与RowSource 属性:RowSourceType 属性指明列表框数据源的类型,

  RowSource 属性指定列表框的数据源 ,两者常用的搭配如下表:

  RowSourceType 属性值 RowSource 属性

  0-无

  在程序运行时,通过AddItem 方法添

  加列表框条目,通过RemoveItem 方

  法移去列表框条目

  无

  1-值

  列出在RowSource 属性中指定所有数

  据项

  可以是用逗号隔开的若干数据项的集合,例

  如,在设计时,在本属性框中输入:北京、

  上海、长沙、武汉

  .... List 属性:用以存取列表框中数据条目的字符串数组。例如,LIST[1]代表列表框中的第一行(第一个数据项)。

  .... ListCount 属性:列表框中数据条目的数目

  .... ColumnCount 属性:指定列表框的列数

  .... Value 属性:返回列表框中被选中的条目

  .... ControlSource 属性:该属性在列表框中的用法与在其他控件中的用法有所不同,在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果

  .... Selected 属性:该属性是一个逻辑型数组,第N个数组元素代表第N 个数据项是否为选定状态

  .... MultiSelect 属性:指定用户能否在列表框控件内进行多重选定

  3). 列表框的事件过程

  常用过程有 Click Event,Dbclick Event, AddItem,RemoveItem

  4). 列表框生成器

  在四个选项页中分别选定列表项、样式、布局和与Value 绑定的列及选定值保存到何处。

  【例】列表框的应用:按下图设计一个表单。要求表单运行时,LIST1 列表框显示STUD 表的所有字段,单击左箭头按钮时,LIST1 中选择的字段加入到LIST2 中。

  操作步骤:

  ① 按图所示在表单中加入二个列表框、二个标签、二个命令按钮。

  ② 在表单的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

  ③ 在左箭头按钮(COMMAND1)的CLICK事件中加入如下代码:

  thisform.list2.addlistitem(thisform.list1.listitem[thisform.list1.value])

  thisform.list1.removeitem[thisform.list1.value]

  右箭头按钮(COMMAND2)的CLICK事件代码请学员自己编写。

  (10).组合框(comboBox)控件

  组合框与列表框类似,也是用于提供一组条目供用户从中选择,组合框和和列表框的主要区别在于:

  1) 对于组合框来说,通常只有一个条目是可见的。用户可以单击组合框上的下拉箭头按钮

  打开条目列表,以便从中选择。

  2) 组合框不提供多重选择的功能,没有MultiSelect属性。

  3) 组合框有两种形式:下拉组合框(Style属性为0)和下拉列表框(Style属性为2)。对下拉组合框,用户既可以从列表中选择,也可以在编辑区输入。对下拉列表框,用户只可从列表中选择。

  (11)表格(Grid)控件

  1).表格控件的功能:

  表格控件用于浏览或编辑多行多列数据。

  2).表格控件常用属性

  .... RecordSourceType 和RecordSource 属性:RecordSourceType 指明表格数据源的类型,RecordSource 属性指定数据的来源,它们取值及含义如表所示。

  .... 表格控件用于浏览或编辑多行多列数据。

  .... 表格提供了一个全屏幕输入输出数据表记录的方式,它也是一个以行列的 方式显示数据的对象容器控件。一个表格控件包含一些列( Column )控件 ,每个列控件能够容纳一个标头对象( Header )和文本框( Text )。

  .... 一般来说与一定的表,视图或查询联系在一起,属于一种数据绑定型控件 。 常用于显示一对多关系中的子表信息

  RecordSourceType 属性值

  RecordSource 属性

  0-表:数据来源由

  RecordSource 属性指定的表,该表能被自动打开表名

  1-别名

  数据来源于己打开的表

  表的别名

  ....ColumnCount:指定表格的列数

  ....LinkMaster:用于指定表格控件中所显示的子表的父表名称

  ....ChildOrader:指定子表的索引

  ....RelationalExpr:确定基于主表字段的关联表达式

  ....AllowAddNew:为真,运行时允许添加新记录,否则不能添加新记录

  ....AllowRowSizing : 为真, 运行时用户可改变行高。

  ....AllowHeaderSizing:为真,运行时用户可改变列宽。

  3).常用的列属性

  ....ControlSource:指定在列中显示的数据源.

  ....CurrentControl:指定列对象中显示和接收数据的控件 .

  ....Sparse:用于确定CurrentControl 属性影响列中的所有单元格还是只影响活动单元格 .

  注意:

  设计时要设置列对象的属性,首先得选择列对象,选择列对象有两种方法:

  ①从属性窗口的对象列表中选择相应列,

  ②右击表格,在弹出的快捷菜单中选择【编辑】命令,这时表格进入编辑状态(表格的周围有一个粗框),用户可用鼠标单击选择列对象。

  4).常用的标头(Header)属性 列标头也是一个对象,有它自己的属性、方法和事件,设计时要设置标头对象的属性,首先得选择标头对象,选择标头对象的方法与选择列对象的方法似。....Caption 属性:

  指定标头对象的标题文本,显示于列顶部。默认为对应字段的字段名。

  ....Alignment 属性:指定标题文本在对象中显示的对齐方式。

  5).调整表格的行高和列宽 一旦指定了表格的列的具体数目,就可以有两种方法来调整表格的行高和列宽。

  ① 设置表格的HeaderHeight 和RowHeight 属性调整行高; 设置列对象的Width 属性调整列宽。

  ② 让表格处于编辑状态下,将鼠标指针置于表格两列的标头之间,这时,鼠标指针变为水平双箭头的形状,拖动鼠标,调整列至所需要的宽度;将鼠标置于表格左侧的第一个按钮和第二个按钮之间,这时,鼠标指针变成垂直双箭头的形状,拖动鼠标,调整行至所需要的高度

  6).使用表格生成器设计表格

  用鼠标左键右击表格,在弹出的快捷菜单中选择【生成器】命令,打开“表格生成器”对话框,

  如图所示。

  “表格项”选项卡:用于设置表格内显示字段

  “样式”选项卡:指定表格的样式

  “布局”选项卡:调整行高、列宽;设置列标题;选择控件类型

  “关系”选项卡:设置一个一对多关系,指明父表中的关键字段与子表中的相关索引

  7)在表格中嵌入控件。

  除了在表格中显示字段数据,还可以在表格的列中嵌入控件,这样就为用户提供了可以嵌入的文本框、复选框、下拉列表框、微调按钮和其他控件。例如,如果表中有一个逻辑字段,当运行该表单时,通过辨认复选框可以判定哪个记录值是.T.和哪个记录值是.F.。修改这些值只需设置或清除复选框即可。

  可以在“表单设计器”中交互地向表格列中添加控件,也可以通过编写代码在运行时添加控件。

  【例】创建一个可以表现课程安排、反映学习成绩的表单。

  构思:使用一个表格体现课程的有关安排信息;再用一个表格体现学习成绩有关信息。

  l 为第1 个表格控件设置属性:

  ColumnCount=4

  ChildOrder=课程号

  DeleteMark=.F.

  Height=72

  Left=24

  LinkMaster=课程表

  ReadOnly=.T.

  RecordMark=.F.

  RecordSource=课程表

  RalationalExpr=课程表.课程号

  RowHeigh=18

  ScrollBars=3

  Top=48

  Width=337

  Name=课

  l 设置表格1 各列属性:

  Column1 的标题属性:

  Alignment=2

  Caption=课程号

  Column1 的文本框属性:

  BorderStyle=0

  Margin=0

  ReadOnly=.T.

  ColorSource=3

  ForeColor=0,0,0

  ControlSource=课程号

  BackColor=192,192,192

  第1 列的属性设置

  ControlSource=无

  Width=75

  ReadOnly=.T.

  其他3 列与第1 列略同。

  l 设置第2 个表格的属性

  ColumnCount=4

  ChildOrder=课程号

  DeleteMark=.F.

  Height=73

  Left=24

  LinkMaster=课程表

  ReadOnly=.T.

  RecordMark=.F.

  RecordSource=分数

  RalationalExpr=课程表.课程号

  RowHeigh=18

  ScrollBars=3-既水平又垂直

  Top=156

  Width=337

  l 设置表格2 中Column1 的属性

  Column1 标题属性为:

  Alignment=2

  Caption=班级

  Name= Column1

  Column1 的文本框属性为:

  BorderStyle=0

  Margin=0

  ReadOnly=.T.

  ColorSource=3

  ForeColor=0,0,0

  BackColor=192,192,192

  Name=Text1

  第1 列的属性设置:

  ControlSource=学生表.班级

  Width=75

  ReadOnly=.T.

  Name=Column1

  第3 列的属性设置:

  Alignment=2

  Caption=成绩

  Name=Column3

  BorderStyle=0

  Margin=0

  ReadOnly=.T.

  ColorSource=3

  ForeColor=0,0,0

  BackColor=192,192,192

  Name=Header1

  ControlSource=分数.成绩

  Width=10

  ReadOnly=.T.

  Name=Text1

  l 定义表单、表格的事件:自动设置。第2、4 列略。

  设置(定义)完成后运行表单,结果如图所示。

  (11).页面控件

  是包含页面的容器对象,其页面又可包含控件实际上就是选项卡界面,它可以在一个表单上提供多个 不同内容的页面,通过选择不同的页面切换到不同的页, 也可以获得不同的页内容。

  ....Pagecount:指定一个页框对象包含的页对象的数量。

  ....Pages 属性 存取页框中的某个页对象

  ....Tabs:是否显示页面标签

  ....Tabstretch:页面标题显示属性(0,1)

  ....Activepage:返回页框中活动的页号

  【例】:设计表单在表单中创建一个页框控件,它的第一页中有四个控件,计算两个文本框的数值的和;它的第二页显示一个图片。

  1.在Visual FoxPro 中,数据环境______。

  A.可以包含与表单有联系的表和视图以及表之间的关系

  B.不可以包含与表单有联系的表和视图以及表之间的关系

  C.可以包含与表有联系的视图及表之间的关系

  D.可以包含与视图有联系的表及表单之间的关系

  [解析] 本题考查的知识点是数据环境的基本知识。在Visual FoxPro中,数据环境可以包含与表单有联系的表和视图及表之间的关系。因此选项B、C、D 错误,正确答案为A。

  [答案] A

  2.数据环境泛指定义表单线表单集时使用的____,包括表、视图和关系。

  A.数据

  B.数据库

  C.数据源

  D.数据项

  [解析] 本题考查的是数据环境的基础知识。在visual FoxPro 中,数据环境是一个对象,泛指定义表单或表单集时使用的数据源,包括表、视图和关系。 选项A 明显错误,因为数据环境不是指数据。选项B错误,因为数据源与数据库不同,在Visual FoxPro 中,数据源是指包括多个表的数据库,如果数据库中没有表则不能称之为数据源。选项C正确,因为Visual FoxPro 中对数据环境的定义是:数据环境泛指定义表单或表单集时使用的数据源。选项D 中数据项的说法错误。

  [答案] C

  1. 设计“无控件”表单标题

  2. 设计“说明”表单

  标题

  图像

  标签

  标签

  命令

  标签

  图标

  标签

  标签

  标签

  标签

  3. 设计“系统登录”表单

  图标

  标题

  标签

  命令按命令按

  组合框

  图标

  4. 设计“数据维护”表单

  编辑框

  图像

  图像

  5. 设计“数据浏览”表单

  单选

  按钮

  页

  6. 设计“数据查询”表单

  查询条件

  查询条件

  查询条件

  查询

  查询

计算机等级考试二级VFP辅导讲义:VisualFoxPro数据库及其操作

热点推荐

登录注册
触屏版电脑版网站地图