VFP8表单设计_第1页
VFP8表单设计_第2页
VFP8表单设计_第3页
VFP8表单设计_第4页
VFP8表单设计_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8章章面向对象可视化编程基础-表单设计表单设计一一.表单的初步认识表单的初步认识什么是表单什么是表单表单(表单(FormForm)在系统中是用户的主要界)在系统中是用户的主要界面,也有人把它称为屏幕(面,也有人把它称为屏幕(ScreenScreen)或窗口。)或窗口。例如,对话框、向导、各种设计器等在例如,对话框、向导、各种设计器等在VFPVFP中都视为表单。中都视为表单。二二. .面向对象的基本概念面向对象的基本概念 1 1对象对象 (1 1)对象的概念)对象的概念 对象(对象(Object)是反映客观事物属性及行为特是反映客观事物属性及行为特征的描述。每个对象都具有征的描述。每个对象都

2、具有描述其特征的属性,描述其特征的属性,及附属于它的行为及附属于它的行为。 对象把事物的属性和行为封装在一起,是一个对象把事物的属性和行为封装在一起,是一个动态的概念。动态的概念。 对象是面向对象编程的基本元素对象是面向对象编程的基本元素,是,是“类类”的的具体实例。具体实例。(2 2)对象的三要素)对象的三要素 1 1)属性)属性 属性属性( (Attribute) )是是用来描述和反映对象特征用来描述和反映对象特征的参数。的参数。对象的每一种属性,都有与其它对象对象的每一种属性,都有与其它对象加以区别的特性,都具有一定的含义,并赋予加以区别的特性,都具有一定的含义,并赋予一定的值。一定的值

3、。 对象的属性窗口及常用属性对象的属性窗口及常用属性 属性窗口属性窗口用于显示、修改当前对象的属性,定用于显示、修改当前对象的属性,定义事件代码,修改方法程序。义事件代码,修改方法程序。 属性窗口的组成属性窗口的组成:对象列表框(用于选择对:对象列表框(用于选择对象);选项卡;属性设置框(用于更改属性);象);选项卡;属性设置框(用于更改属性);属性列表框;属性说明信息。属性列表框;属性说明信息。 访问访问格式:格式:对象引用对象引用.属性属性 常用的对象属性常用的对象属性(P160)属属 性性说说 明明默认值默认值Name对象的名称对象的名称Form1Caption对象的标题对象的标题For

4、m1Movable对象能否移动对象能否移动.T.Enabled对象是否可见对象是否可见.T.Closable能否通过能否通过“关闭关闭”框关闭对象框关闭对象.T.AutoCenter对象是否在对象是否在Visual FoxProVisual FoxPro主窗口中居中主窗口中居中.F.BorderStyle对象有没有边框,还是单线框、双线框或系统边框。对象有没有边框,还是单线框、双线框或系统边框。默认为系统,用户能改变对象大小默认为系统,用户能改变对象大小3ForeColor对象的前景色对象的前景色0,0,0BackColor对象的背景色对象的背景色192,192,192Height对象的高度对

5、象的高度200Width对象的宽度对象的宽度400 2)2)方法方法 方法方法(Method) )也叫也叫“方法程序方法程序”。是。是指对象完成某种任务所固有的功能。可由指对象完成某种任务所固有的功能。可由用户在需要时调用。用户在需要时调用。是附属于对象的行为是附属于对象的行为和动作和动作,是为对象内定的通用过程。,是为对象内定的通用过程。 调用格式:调用格式:对象引用对象引用.方法方法 (参数名表参数名表) 常用的方法有:常用的方法有: ClsCls 清除表单中的图形与文本清除表单中的图形与文本 HideHide 通过修改通过修改VisableVisable属性来隐藏表单或工具栏属性来隐藏表

6、单或工具栏 Refersh Refersh 重新绘制表单或控件并刷新所有值重新绘制表单或控件并刷新所有值 ReleaseRelease 从内存中释放表单或表单集从内存中释放表单或表单集 ShowShow 显示表单并确定表单是模态的还是非模态的显示表单并确定表单是模态的还是非模态的3)3)事件事件 事件事件( (Event) ) 是每个对象可能用以识别和响是每个对象可能用以识别和响应的某些行为和动作。应的某些行为和动作。它发生在用户与应用程它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下序交互时。如单击控件、鼠标移动、键盘按下等。等。 事件驱动编程机制事件驱动编程机制例如:单击表单时

7、触发了例如:单击表单时触发了Click事件,屏幕事件,屏幕显示提示:你单击了表单。可以在表单的显示提示:你单击了表单。可以在表单的Click事件中写入代码:事件中写入代码:MessageBox(“你你单击了表单单击了表单”). “方法方法”与与“事件事件”有相似之处,都是为完成某个任务,有相似之处,都是为完成某个任务,但同一个事件可完成不同任务,取决于所编的代码;但同一个事件可完成不同任务,取决于所编的代码;方法则是固定的,任何时候调用都是完成同一个任务。方法则是固定的,任何时候调用都是完成同一个任务。所以,方法中的代码一般不需要用户编,所以,方法中的代码一般不需要用户编,VFP已为用已为用户

8、编好了,只需在必要的时候调用。户编好了,只需在必要的时候调用。 例:例:this.parent.cls在在Visual FoxPro系统中,对象可以响应系统中,对象可以响应5050多种多种事件。多数情况下,事件是通过用户的操作事件。多数情况下,事件是通过用户的操作行为引发的,当事件发生时,将执行包含在行为引发的,当事件发生时,将执行包含在事件过程中的全部代码。事件过程中的全部代码。 常用的核心事件常用的核心事件见下表:见下表:分类分类事件名称事件名称发生时刻发生时刻鼠标鼠标Click使用鼠标左键单击对象时使用鼠标左键单击对象时DblClick使用鼠标左键双击对象时使用鼠标左键双击对象时Righ

9、tClick使用鼠标右键单击对象时使用鼠标右键单击对象时MouseDown按下鼠标按钮时按下鼠标按钮时MouseUp释放鼠标按钮时释放鼠标按钮时MouseMove移动鼠标时移动鼠标时键盘键盘KeyPress按下并释放某个键时按下并释放某个键时控件焦点控件焦点GotFocus对象得到焦点时对象得到焦点时LostFocus对象失去焦点时对象失去焦点时表单表单Load创建表单或表单集之前创建表单或表单集之前Unload在表单或表单集释放时在表单或表单集释放时其他其他Init创建对象时创建对象时Destroy从内存中释放对象时从内存中释放对象时InteractiveChang通过鼠标或键盘以交互式方式

10、改通过鼠标或键盘以交互式方式改变一个控件的值时变一个控件的值时Error某方法运行中发生错误时某方法运行中发生错误时常见事件常见事件 在面向对象的程序设计中,要引用其中的某个在面向对象的程序设计中,要引用其中的某个对象,必须指出对象在嵌套层次中的位置,如同对象,必须指出对象在嵌套层次中的位置,如同我们标识一个文件一样。我们标识一个文件一样。 (3) 对象的引用对象的引用1) 引用规则引用规则(引用关键字开头引用关键字开头,逐级引用逐级引用) 格式:格式:引用关键字引用关键字.对象名对象名(或对象的属性、事件、或对象的属性、事件、方法程序方法程序)属性或关键字属性或关键字引引 用用 Parent

11、Parent当前对象的直接容器对象当前对象的直接容器对象ThisThis当前对象当前对象ThisFormThisForm当前对象所在的表单当前对象所在的表单ThisFormSetThisFormSet当前对象所在的表单集当前对象所在的表单集2) 设置属性值设置属性值(编程方式)(编程方式) 格式格式: 对象对象.属性属性=值值例如:例如:ThisForm.Caption=“退出退出”例例: ThisForm.text1.value=date( )颜色设置颜色设置 RGB例例: ThisForm.backcolor=rgb(0,255,255)3) 方法程序的调用方法程序的调用 通常在事件代码中

12、调用。通常在事件代码中调用。 格式:格式:对象对象.方法方法 例例:Thisform.release 释放表单释放表单 2 2类类所谓所谓类类( (Class) ),就是一组相似对象的属性和行,就是一组相似对象的属性和行为特征的抽象描述。或者说,类是具有共同为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。属性、共同操作性质的对象的集合。在在Visual FoxPro系统中,系统中,类就像是一个模板,对象都类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的事件和方法,从而决定了对象的属性

13、和它的行为。行为。Visual FoxPro系统为用户提供的系统为用户提供的3232个基类见下表:个基类见下表: (P169-170) 类名类名含义含义类名类名含义含义ActiveDoc活动文档活动文档Label标签标签CheckBox复选框复选框Line线条线条Column表格列表格列ListBox列表框列表框ComboBox组合框组合框OleControlOLE容器控件容器控件CommandButton 命令按钮命令按钮OleBoundControlOLE绑定控件绑定控件CommandGroup命令按钮组命令按钮组OptionButton选项按钮选项按钮Container容器容器Optio

14、nGroup选项按钮组选项按钮组Control控件控件Page页页类名类名含义含义类名类名含义含义Custom定制定制PageFrame页框页框EditBox编辑框编辑框ProjectHook项目挂钩项目挂钩Form表单表单Separator分隔符分隔符FormSet表单集表单集Shape形状形状Grid表格表格Spinner微调控件微调控件Header列表头列表头TexrBox文本框文本框Hyperlink超级链接超级链接 Timer定时器定时器Image图像图像ToolBor工具栏工具栏(1)基类基类 基类又可以分成基类又可以分成容器类容器类和和控件类控件类。 容器类容器类可以容纳其它对象

15、,并允许访问所包含可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。把按钮、编辑框、文本框等放在表单中。 控件类控件类不能容纳其它对象,它没有容器类灵活。不能容纳其它对象,它没有容器类灵活。如文本,自身是一个对象,在文本中不可放其如文本,自身是一个对象,在文本中不可放其它对象。由控件类创造的对象,是不能单独使它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素。用和修改的,它只能做为容器类中的一个元素。(2)(2)类的特性类的特性 类具有类具有继承性、封装性继承性、封

16、装性和和多态性多态性等特性。等特性。 1) 继承性继承性 继承性继承性指通过继承关系利用已有的类构造新类。指通过继承关系利用已有的类构造新类。 任何一个基类都有它的属性。即使用户没有定任何一个基类都有它的属性。即使用户没有定义,义,Visual FoxPro系统也赋给基类相应的缺省值。系统也赋给基类相应的缺省值。在创造对象时,可以利用基类派生出另一个新类。在创造对象时,可以利用基类派生出另一个新类。通常把从已有的类派生出的新类称为子类,已有通常把从已有的类派生出的新类称为子类,已有的类称为父类。子类不但具有父类的全部属性和的类称为父类。子类不但具有父类的全部属性和方法,而且还允许用户根据需要修

17、改对已有的属方法,而且还允许用户根据需要修改对已有的属性和方法进行修改或添加新的属性和方法。性和方法进行修改或添加新的属性和方法。 在在Visual FoxPro系统中允许用户按照已有的系统中允许用户按照已有的类派生出多个子类来。在父类的基础上派生子类派生出多个子类来。在父类的基础上派生子类,在子类的基础上再派生子类,如此循环,类,在子类的基础上再派生子类,如此循环,可以在已有的类中派生出多个新类。在每一次可以在已有的类中派生出多个新类。在每一次的操作中,子类都会从父类中继承父类已有的的操作中,子类都会从父类中继承父类已有的属性和方法,这就是属性和方法,这就是类的继承性类的继承性的体现。有了的

18、体现。有了类的继承,用户在编写程序时,可以把具有普类的继承,用户在编写程序时,可以把具有普遍意义的类通过继承引用到程序中,从而减少遍意义的类通过继承引用到程序中,从而减少代码的编写工作。代码的编写工作。父类子类子类继承性继承性继承的方法与属性添加的方法与属性方法属性2)封装性封装性 类的类的封装性封装性是指类的内部信息对用户是是指类的内部信息对用户是隐蔽的。隐蔽的。 在类的引用过程中,用户只能看到封装界在类的引用过程中,用户只能看到封装界面上的信息,对象的内部信息(数据结构及面上的信息,对象的内部信息(数据结构及操作范围、对象间的相互作用等)则是隐蔽操作范围、对象间的相互作用等)则是隐蔽的,只

19、有程序开发者才了解类的内部信息。的,只有程序开发者才了解类的内部信息。 由于类具有由于类具有封装性封装性,因此不必被类的概念或类的抽,因此不必被类的概念或类的抽象所困扰。在使用类时,用户不需熟悉对象内部的复杂象所困扰。在使用类时,用户不需熟悉对象内部的复杂性,只需掌握类的使用方法。正如你在使用照相机照相性,只需掌握类的使用方法。正如你在使用照相机照相时,无需了解照相机是怎样设计的和内部构造,只要会时,无需了解照相机是怎样设计的和内部构造,只要会使用即可。类的封装性使应用程序的可用性大大提高了。使用即可。类的封装性使应用程序的可用性大大提高了。3)多态性多态性 多态性多态性指的是不同的对象接受到

20、相同指的是不同的对象接受到相同的消息时,可以做出完全不同的解释,的消息时,可以做出完全不同的解释,进而产生完全不同的行为。进而产生完全不同的行为。 利用多态性,应用程序可以发送一般形利用多态性,应用程序可以发送一般形式的消息,而将所有实现的细节留给接式的消息,而将所有实现的细节留给接受消息的对象自己来解决。受消息的对象自己来解决。 三三.表单设计及运行表单设计及运行建立简单的应用程序步骤建立简单的应用程序步骤1.建立用户界面的对象建立用户界面的对象 建立、选定、复制、删除、命名建立、选定、复制、删除、命名2.设置数据环境设置数据环境3.设置对象属性设置对象属性4.对对象的事件过程编程对对象的事

21、件过程编程5.程序运行和调试程序运行和调试6.保存文件保存文件1.1.建立表单建立表单 表单表单(Form)在系统中是用户的主要界面,也有人)在系统中是用户的主要界面,也有人把它称为屏幕(把它称为屏幕(Screen)或窗口。但它不是一个普通)或窗口。但它不是一个普通的窗口,因为其中的控件可以有属性、事件和方法,的窗口,因为其中的控件可以有属性、事件和方法,并且表单和表单集本身也是有属性、事件和方法的编并且表单和表单集本身也是有属性、事件和方法的编程对象。在程对象。在Visual FoxPro 系统中,表单拥有多个属性,系统中,表单拥有多个属性,可以响应多种事件、实现多种方法操作。可以响应多种事

22、件、实现多种方法操作。 表单为数据库信息的显示、输入和编辑表单为数据库信息的显示、输入和编辑提供了非常简便的方法,表单的设计是可提供了非常简便的方法,表单的设计是可视化编程的基础。视化编程的基础。 表单的建立是一个全新的领域。在建立表单的建立是一个全新的领域。在建立表单的过程中,要定义控件的属性、确定表单的过程中,要定义控件的属性、确定事件或方法的代码。前面我们曾讲过,在事件或方法的代码。前面我们曾讲过,在面向对象的程序设计中,两个最基本的可面向对象的程序设计中,两个最基本的可视对象类型是容器和控件。表单就是一个视对象类型是容器和控件。表单就是一个容器,它可以容纳多个控件。容器,它可以容纳多个

23、控件。1)1)用表单设计器建立表单用表单设计器建立表单 使用系统提供的表单设计器创建新的使用系统提供的表单设计器创建新的表单,可以在菜单方式或命令方式下进表单,可以在菜单方式或命令方式下进行。行。 方法一:菜单方式方法一:菜单方式 打开打开“文件文件”菜单,选择菜单,选择“新建新建”;在在“新建新建”窗口,选择窗口,选择“表单表单”,再按,再按“新建文件新建文件”按钮,进入按钮,进入“表单设计器表单设计器”窗口;窗口;打开打开“显示显示”菜单,完成对表单属性、事菜单,完成对表单属性、事件和方法的定义:再选择件和方法的定义:再选择“保存保存”,表,表单建立完成。单建立完成。方法二:命令方式方法二

24、:命令方式 命令格式如下:命令格式如下: 新建表单:新建表单:CREATE FORM CREATE FORM 修改表单:修改表单: MODIFY FORM MODIFY FORM “表单设计器表单设计器”窗口窗口“属性属性”窗口窗口“ 表 单 控 件表 单 控 件”工具栏工具栏“表单设计器表单设计器” 工具栏工具栏“表单表单”菜单菜单空白表单空白表单表单设计器窗口表单设计器窗口2.2.表单的修改与运行表单的修改与运行 表单一旦建立完成,表单及表单中表单一旦建立完成,表单及表单中对象的属性、方法和事件就已确定。对象的属性、方法和事件就已确定。用户可以运行查看效果,如果对已有用户可以运行查看效果,

25、如果对已有的对象的属性、方法和事件不满意,的对象的属性、方法和事件不满意,可以进行修改。可以进行修改。1)修改表单修改表单 (1)用表单设计器修改表单)用表单设计器修改表单 打开“文件”菜单,选择“打开”;在“打开”窗口中,输入“表单名”;在“表单设计器”窗口,单击鼠标右键,在“表单”快捷菜单中,选择“执行表单”。 (2)以命令方式修改表单)以命令方式修改表单 命令格式:MODIFY FORM 2)2)运行表单运行表单(1)在表单设计器中运行表单)在表单设计器中运行表单 打开打开“文件文件”菜单,选择菜单,选择“打开打开”;在;在“打开打开”窗口中,输入窗口中,输入“表单名表单名”;在;在“表

26、表单设计器单设计器”窗口,单击鼠标右键,在窗口,单击鼠标右键,在“表单表单”快捷菜单中,选择快捷菜单中,选择“执行表单执行表单”。(2)以命令方式运行表单)以命令方式运行表单 命令格式:命令格式:DO FORM 3.表单控件介绍表单控件介绍1)标签标签(label) “标签标签”控件主要用于在表单上显示文本控件主要用于在表单上显示文本信息信息,常用作提示或说明。常用作提示或说明。被显示的文本在Caption属性中指定。标签的标题不能在屏幕上直接编辑修改,但可以在代码中间接修改。标签标签标题文本最多可容纳最多可容纳256字符。字符。 表单示意如下图:标签标签标签标签常用属性常用属性: : Cap

27、tion:Caption: 显示文本信息的标题显示文本信息的标题AutoSizeAutoSize:根据标题文本自动调整标签大小(根据标题文本自动调整标签大小(.F.F.)WordWrapWordWrap:能否自动换行(:能否自动换行(.F.F.)BackColorBackColor:背景色背景色BackStyleBackStyle:标签是否透明(:标签是否透明(0:0:透明透明, 1:, 1:不透明)不透明)BorderStyleBorderStyle:边框样式(:边框样式(0:0:无无, 1:, 1:固定单线)固定单线)Visible: Visible: 标签是否显示出来(标签是否显示出来(

28、.T.T.)Fontsize:Fontsize: 标题文字的字体大小标题文字的字体大小ForecolorForecolor:标题文字的颜色标题文字的颜色Aligment: Aligment: 标题文字对齐方式标题文字对齐方式(0:(0:左左, 1:, 1:右右, 2:, 2:居中居中) )Name: 对象名称对象名称, 主要用于对象的引用主要用于对象的引用常用事件常用事件: 单击单击(click) 初始化初始化(init)【例【例1】 建立一表单,在表单上添加一个标签建立一表单,在表单上添加一个标签控件,显示文字为:控件,显示文字为:VFPVFP标签示例标签示例;字的大小:;字的大小:1616

29、。运行时单击标签,标签文字修改为:。运行时单击标签,标签文字修改为:Visual FoxPro 6.0Visual FoxPro 6.0标签示例标签示例。设计步骤如下:设计步骤如下:创建表单。在表单上添加一个标签控件。创建表单。在表单上添加一个标签控件。设置标签控件属性:设置标签控件属性:CaptionCaption为:为:VFPVFP标签示标签示例,例,FontSizeFontSize为为1616,AutoSizeAutoSize为为.T.T.。双击标签控件,编辑标签双击标签控件,编辑标签ClickClick事件代码:事件代码:ThisForm.Label1.caption=Visual F

30、oxPro 6.0ThisForm.Label1.caption=Visual FoxPro 6.0标签示例标签示例 保存表单文件保存表单文件BD1.SCXBD1.SCX。单击工具栏单击工具栏“运行运行”按钮,执行按钮,执行BD1.SCX。 (演示演示) 2)2)计时器计时器(Timer)(Timer) “计时器计时器”控件允许在指定时间内周期控件允许在指定时间内周期性性地自动地执行其地自动地执行其Timer事件代码。计时器事件代码。计时器在表单设计过程中是可见的,但在运行时在表单设计过程中是可见的,但在运行时不可见,它的位置和大小都无关紧要。不可见,它的位置和大小都无关紧要。 “计时器计时器

31、”控件主要有两个属性,即控件主要有两个属性,即Interval属性和属性和Enabled属性。属性。Interval属属性用于定义两次计时器事件触发的时性用于定义两次计时器事件触发的时间间隔(毫秒级);间间隔(毫秒级);Enabled属性为真属性为真(.T.)表示启动计时器,)表示启动计时器,Enabled=.F.表表示终止计时器。表单示意图:示终止计时器。表单示意图:【例【例2】计时器示例-滚动文字滚动文字Interval属性:属性:50Enabled属性:属性:.f.Timer事件代码:事件代码:(向左向左)If ThisForm.Label1.left1 ThisForm.Label1.

32、left= ThisForm.Label1.left-2Else ThisForm.Label1.left= 420Endif“向左向左”按钮的按钮的“click”事件代码:事件代码: thisform.timer1.enabled=.t.【例【例3】计时器示例-显示时间(P188)Timer事件代码:事件代码: if thisform.label1.caption!=time() thisform.label1.caption=time()Endif命令按钮命令按钮Command1的的Click事件代码:事件代码:if mand1.caption=开始开始 this.parent.timer

33、1.enabled=.t. mand1.caption=暂停暂停else this.parent.timer1.enabled=.f. mand1.caption=开始开始 endif 3)命令按钮及命令按钮组命令按钮及命令按钮组(CommandGroup)CommandGroup) 【例【例4】设计“命令按钮”控件表单 命令按钮命令按钮“红红”按钮按钮Click代码:代码: ThisForm.BackColor=rgb(255,0,0)“绿绿”按钮按钮Click代码:代码: ThisForm.BackColor=rgb(0, 255, 0)“蓝蓝”按钮按钮Click代码:代码: ThisFo

34、rm.BackColor=rgb(0,0,255)“退出退出”按钮按钮Click代码:代码: ThisForm.Releasenrgb( ) 颜色函数颜色函数n根据一组红、绿、蓝颜色成根据一组红、绿、蓝颜色成份返回一个单一的颜色值。份返回一个单一的颜色值。Rgb(,)n注注:色值范围在色值范围在0255之间之间4 4)文本框)文本框(textbox) (textbox) (P178) 文本框文本框主要用于显示和编辑一个变量或者一个主要用于显示和编辑一个变量或者一个字段的值。所有字段的值。所有Visual FoxPro标准的标准的编辑编辑功能,比如剪切、复制、粘贴,都可用于功能,比如剪切、复制、

35、粘贴,都可用于文本框。文本框。常用属性常用属性左起始位左起始位(left)上起始位上起始位(top)宽度宽度(width)高度高度(hight)控制源控制源(controlsource)值值(value)文本对齐文本对齐(alignment)名称名称(name)只读只读(readonly)可见可见(visible) 可用可用(enabled)自动选定自动选定(SelectOnEntry)常用事件常用事件单击单击(click)初始化初始化(init)获得焦点获得焦点 失去焦点失去焦点(gotfocus) (lostfocus)常用方法常用方法设置焦点设置焦点(setfocus)刷新刷新(refr

36、esh)Value:指定文件框的值,并显示。其值的类型可以为N型、C型、D型、T型、L型。也可以用命令方式设置,如:ThisForm.Text1.Value=“(0551)5169268”ControlSource:数据绑定数据绑定。 设置ControlSource则显示在文本框中的值除了保存在Value属性中,同时也保存在ControlSource属性指定的数据表字段或内存变量中。PasswordChar:控制是否显示用户实际输入的数据。设置为*时,只显示相同个数的*。【例【例5】创建一个如图所示的登录界面,标题为:登录窗创建一个如图所示的登录界面,标题为:登录窗口;操作时若未输入用户名将弹

37、出一个对话框显示口;操作时若未输入用户名将弹出一个对话框显示“必须必须输入用户名输入用户名!”;输入的口令限定为;输入的口令限定为6位数字,假定口令是位数字,假定口令是“123456”,但显示,但显示6个个“*”;如果操作正确,则弹出;如果操作正确,则弹出“祝贺祝贺登录成功登录成功”画面,并释放表单。画面,并释放表单。 创建一个表单创建一个表单FORM1FORM1,标题为:登录窗口;然后,标题为:登录窗口;然后在表单上添加两个标签在表单上添加两个标签Label1Label1、Label2Label2,两个文本,两个文本框框Text1Text1、Text2Text2。设置设置Label1Labe

38、l1、Label2Label2的的CaptionCaption属性分别为:用户属性分别为:用户名、口令。名、口令。 Text2 Text2的的InputMaskInputMask属性值为:属性值为:999999999999;PasswordCharPasswordChar属性值为:属性值为:* *号。号。双击双击Text1Text1控件的控件的Valid EventValid Event属性属性, ,编写编写Text1Text1对象的对象的ValidValid过程代码如下:过程代码如下: IF EMPTY(ThisForm.Text1.Value)IF EMPTY(ThisForm.Text1

39、.Value) MESSAGEBOX(“ MESSAGEBOX(“必须输入用户名必须输入用户名!”,”!”,”验证用户口验证用户口令令” ”) ) RETURN .F. RETURN .F. ENDIF ENDIF同样方法同样方法, ,编写编写Text2Text2对象的对象的ValidValid过程代码如下:过程代码如下: IF ThisForm.Text2.Value=123456IF ThisForm.Text2.Value=123456 MESSAGEBOX( MESSAGEBOX(祝贺登录成功祝贺登录成功!,!,欢迎光临欢迎光临) ) ThisForm.RELEASE ThisForm

40、.RELEASE ENDIF ENDIF保存表单,名称为保存表单,名称为BD5.SCX,并运行表单。,并运行表单。 5 5)编辑框编辑框(EDITBOX)用于输入或编辑文本数据。常用于用于输入或编辑文本数据。常用于多段多段长文本长文本和和备注型字段备注型字段内容的输入和编内容的输入和编辑。辑。常用属性常用属性属属 性性说说 明明默认值默认值NameName编辑框的名称编辑框的名称Edit1Edit1ControlSourceControlSource设置与编辑框绑定的数据源设置与编辑框绑定的数据源无无HideSelectionHideSelection设置当编辑框失去焦点时,是否隐藏编辑设置当

41、编辑框失去焦点时,是否隐藏编辑框中选定文本的选定状态。框中选定文本的选定状态。.T.-选定选定,.F.-非非选定选定.T.T.ScrollBarsScrollBars设置编辑框是否有滚动条。设置编辑框是否有滚动条。0-0-没有,没有,2-2-垂垂直直2 2SelStartSelStart返回用户所选文本的起始点或插入点返回用户所选文本的起始点或插入点( (没有没有文本选定时文本选定时) )位置。位置。0 0SelLengthSelLength返回用户所选文本的字符数。返回用户所选文本的字符数。0 0SelTextSelText返回用户所选文本返回用户所选文本空串空串AllowTabsAllow

42、Tabs指定编辑框中能否使用指定编辑框中能否使用TABTAB键。键。.T.-.T.-是是,.F.-,.F.-否否.F.F.【例【例6】 (P179)创建一个表单,添加一个编辑框创建一个表单,添加一个编辑框Edit1Edit1和文本框和文本框Text1Text1,将数据表,将数据表DA.DBFDA.DBF中的中的“简简历历”字段与编辑框绑定,以便编辑备注型字段内字段与编辑框绑定,以便编辑备注型字段内容。当在编辑框中选定一段内容并单击文本框容。当在编辑框中选定一段内容并单击文本框Text1Text1时,则在文本框中显示所选内容。时,则在文本框中显示所选内容。创建表单,在表单上添加两个标签创建表单,

43、在表单上添加两个标签Label1Label1、Label2Label2,CaptionCaption属性分别为:属性分别为:简历、所选内容。再添加一个编辑框简历、所选内容。再添加一个编辑框Edit1Edit1和一个文本框和一个文本框Text1Text1。在数据环境设计器中添加表:在数据环境设计器中添加表:DA.DBFDA.DBF,再将再将Edit1Edit1的的ControlSourceControlSource属性与属性与DA.DBFDA.DBF中的备注字段中的备注字段“简历简历”绑定。绑定。双击编辑框双击编辑框Edit1Edit1,选择,选择LostFocusLostFocus过程,过程,

44、编写焦点离开时代码如下:编写焦点离开时代码如下: ThisForm.Edit1.HideSelection=.F.ThisForm.Edit1.HideSelection=.F.双击文本框双击文本框Text1Text1,选择,选择GotFocusGotFocus过程,过程,编写焦点移至时代码如下:编写焦点移至时代码如下: This.Value=ThisForm.Edit1.SelTextThis.Value=ThisForm.Edit1.SelText保存表单,名称为保存表单,名称为BD6.SCX,并运行表,并运行表单。单。 6 6)单选按钮组单选按钮组(OptionGroup)(Option

45、Group)单选按钮单选按钮表单示意图【例【例7】创建如上图所示表单,定义一个名称为创建如上图所示表单,定义一个名称为“OptionGroup1”的单选按钮组,所含按钮个数为的单选按钮组,所含按钮个数为4,标题依次为标题依次为“宋体宋体”、“隶书隶书”、“黑体黑体”和和“幼幼圆圆”,当选中某个按钮时,文本框中的字体发生相,当选中某个按钮时,文本框中的字体发生相应的变化,用应的变化,用Do Case结构编写结构编写“OptionGroup1”的的Click事件代码;事件代码; 在控件窗口中选择单选按钮组控件,在表单的适当位置在控件窗口中选择单选按钮组控件,在表单的适当位置拖放,在该控件的属性窗口

46、中,将拖放,在该控件的属性窗口中,将ButtonCountButtonCount设置设置为为4 4,其中四个选项按钮的,其中四个选项按钮的CaptionCaption分别设置为分别设置为“ “宋体宋体” ”、“ “隶书隶书” ”、“ “黑体黑体” ”和和“ “幼圆幼圆” ”, ,单选按钮组单选按钮组ClickClick事件代码如事件代码如下:下:do casedo case case this.value=1 case this.value=1 thisform.text1.fontname= thisform.text1.fontname=宋体宋体 case this.value=2 cas

47、e this.value=2 thisform.text1.fontname= thisform.text1.fontname=隶书隶书 case this.value=3 case this.value=3 thisform.text1.fontname= thisform.text1.fontname=黑体黑体 case this.value=4 case this.value=4 thisform.text1.fontname= thisform.text1.fontname=幼圆幼圆 endcase endcase 保存表单,并运行表单。保存表单,并运行表单。7 7)复选框)复选框(C

48、heckBoxCheckBox) 复选框允许同时选择多项,当处于复选框允许同时选择多项,当处于“真真”状态时,复选框内显示一个对状态时,复选框内显示一个对勾(勾();否则,复选框内为空白。);否则,复选框内为空白。主要属性:主要属性: 1Value属性属性 用来指明复选框的当前状态。复选框的用来指明复选框的当前状态。复选框的Value属性值的设置有如下三种情况:属性值的设置有如下三种情况:0或或.F. 未被选中(默认)未被选中(默认)1或或.T. 被选中被选中2 灰色,只能通过代码设置灰色,只能通过代码设置 2Style属性属性 复选框的外观:复选框的外观: 0 方框按钮(标准样式,默认值),

49、右侧显方框按钮(标准样式,默认值),右侧显 示示Caption文本,选中出现文本,选中出现“”标记。标记。 1 图形按钮,在图形按钮,在Picture属性指定为图形属性指定为图形 时,时,Caption文本图形下方,选中按钮文本图形下方,选中按钮 呈按下。若呈按下。若Picture属性未指定为图形属性未指定为图形 时,为文本按钮。时,为文本按钮。复选框复选框复选框表单设计示例9 9)微调微调(SpinnerSpinner) “微调微调”控件可在控件框中输入或控件可在控件框中输入或选择一个值,主要属性有:选择一个值,主要属性有:KeyBoardHighValueKeyBoardHighValue

50、:最大值:最大值KeyBoardLowValueKeyBoardLowValue:最小值:最小值IncrementIncrement:增减值增减值ValueValue:初始值。:初始值。表单示意如下图:表单示意如下图:微调列表框列表框(LISTBOX)与组合框与组合框(ComboBox)主要用于提供选项列表。前者始终显示列表选项供选择;主要用于提供选项列表。前者始终显示列表选项供选择;后者通常仅显示一项,单击下拉钮才显示下拉列表。后者通常仅显示一项,单击下拉钮才显示下拉列表。组合框又有下拉组合和下拉列表两类,前者除有选项功能组合框又有下拉组合和下拉列表两类,前者除有选项功能外还可输入,后者则与

51、列表框相同,仅有选项功能。外还可输入,后者则与列表框相同,仅有选项功能。常用属性常用属性Rowsource:指定值的来源:指定值的来源Rowsourcetype:选项类型,:选项类型,1:值值,2-别名别名,3-SQL,4-查询查询,5:数组数组,6:字段字段,7-文件文件,8-结构结构,9-弹出式菜单弹出式菜单(1)使用列表框生成器设置列表框常用属性)使用列表框生成器设置列表框常用属性指定选项:字段内容、输入数值、数组值指定选项:字段内容、输入数值、数组值指定样式:列表框的外观指定样式:列表框的外观设置列宽设置列宽指定返回值及存储指定返回值及存储(2)使用组合框生成器设置组合框常用属性)使用

52、组合框生成器设置组合框常用属性Style属性:属性:0:下拉组合,:下拉组合,1:下拉列表:下拉列表几个有用的属性:几个有用的属性:ListCount:返回选项个数:返回选项个数ListIndex: 返回或设置选定项序号返回或设置选定项序号Selected:判断选定否,:判断选定否,.T.为选定,为选定,.F.为未选定为未选定Value:返回列表中选定项的值:返回列表中选定项的值DisplayValue:返回组合框中输入的文本:返回组合框中输入的文本List:返回指定行、列位置的选项内容:返回指定行、列位置的选项内容例定义一个名称为“Command1”,标题为“开始”的按钮,当单击该按钮时,将

53、1到20之间的数显示在列表框“List1”中,编写其Click事件代码;FOR I=1 TO 20THISFORM.LIST1.additem(str(I)ENDFOR设计“组合框”控件表单 列表框在任何时候都能看到多个条目;而在下拉列表中,用户只能看到一个条目,单击向下的按钮可显示滚动的下拉列表框。而组合框用户可以单击下拉组合框上的按钮查看选择项的列表,也可直接在按钮旁边的框中直接输入一个新项。表单示意图:它们常用的属性和方法有: 1RowSourceType属性与属性与RowSource属性属性 这两个属性在设计和运行时可用。RowSourceType属性指明列表框条目中数据源的类型,Ro

54、wSource属性指定列表框的条目数据源。RowSourceType属性的取值范围及含义如下表所示。属性值属性值说说 明明0无(默认值)。运行时可通过无(默认值)。运行时可通过Addltem方法添加列表方法添加列表框条目,通过框条目,通过RemoveItem方法移去列表框条目。方法移去列表框条目。1值。通过值。通过RowSource属性手工指定具体的列表框条目,属性手工指定具体的列表框条目,如如RowSource=春春,夏夏,秋秋,冬冬2别名。将表中的字段值作为列表框的条目。别名。将表中的字段值作为列表框的条目。3SQL语句。将语句。将SQL SELECT语句的执行结果作为列语句的执行结果作为

55、列表框条目的数据源。表框条目的数据源。属性值属性值说说 明明4查询(查询(.QPR)。将)。将.QPR正文件执行产生的结果作为正文件执行产生的结果作为列表框条目的数据源,如列表框条目的数据源,如RowSource=Mvquery.qpr5数组。将数组中的内容作为列表框条目的来源数组。将数组中的内容作为列表框条目的来源6字段。将表中的一个或几个字段作为列表框条目的数字段。将表中的一个或几个字段作为列表框条目的数据源,据源,7文件。将某个驱动器和目录下的文件名作为列表框的文件。将某个驱动器和目录下的文件名作为列表框的条目。如要在列表框中显示当前目录下条目。如要在列表框中显示当前目录下Visual

56、FoxPro表文件清单,可将表文件清单,可将Rowsource属性设置为属性设置为*.dbf8结构。将表中的字段名作为列表框的条目,由结构。将表中的字段名作为列表框的条目,由RowSource属性指定表。若属性指定表。若RowSource属性值为空,属性值为空,则列表框显示当前表中的字段名清单则列表框显示当前表中的字段名清单9弹出式菜单。将弹出式菜单作为列表框条目的数据弹出式菜单。将弹出式菜单作为列表框条目的数据(续表)(续表)2List属性属性 用以存取框中数据条目的字符串数组。如: (1)读取列表框中第3个条目第1列上的数据项。 Var= ThisForm.mylist.lsit(3) (

57、2)重新将列表框中第3个条目第2列上的数据项设置为“OK”。 This.Form.mylist.list(3,2)=”OK”3ListCount属性属性指明列表框中数据条目的数目。4ColumnCount属性属性指定列表框的列数。5Value属性属性返回列表框中被选中的条目。该属性可以是数值型,也可以是字符型。若为数值型,返回的是被选条目在列表框中的次序号。若为字符型,返回的是被选条目的本身内容,如果列表框不止一列,则返回由BoundColumn属性指明的列上的数据项。 6ControlSource属性属性可指定一个字段或变量用以保存用户从列表框中选择的结果。 7Selected属性属性指定列

58、表框内的某个条目是否处于选定状态。比如下面代码用以判断第三个条目是否被选中。 If ThisForm.List1.Selected(3) WAIT 已被选中! WIND Else WAIT 未被选中! WIND Endif 8MultiSelect属性属性指定用户能否在列表框控件内进行多重选定。该属性的设置情况为:0或.F.,不允许多重选择(默认);1或.T.,允许多重选择。该属性在设计时可用,在运行时可读写,仅适用于列表框。9 9AddItemAddItem方法方法给RowSourceType属性为0的列表中添加一项。如:ThisForm.List.RowSourceType=0 ThisF

59、orm.List.AddItem(联想) ThisForm.List.AddItem(浪潮)1010RemoveItemRemoveItem方法方法从RowSourceType属性为0的列表中删除一项。如:ThisForm.List. RemoveItem(2)设计设计“图像图像”控件表单控件表单 “图像”控件主要用于把.BMP、.GIF、JPG类型的文件添加到表单上,“图像”控件可以在程序运行的动态过程中加以改变。 “图像”控件的“Stretch”属性定义了图像的三种显示方式:当“Stretch”属性值为“0时”,将把图像的超出部分裁剪掉;当“Stretch”属性值为“l”时,等比例填充;当“Stretch”属

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论