本章教学要求:掌握VFP各种常用控件的基本特点及使用,表单的基本属性及在应用程序中的使用。11.1VisualFoxPro常用控件11.2表单11.3表单的应用设计实例第11章VisualFoxPro常用控件与表单在一个应用程序的开发中,界面设计要占整个程序开发总工作量的40%~60%,VisualFoxPro为用户提供了可视化的界面开发环境,使应用程序的界面设计变得简单、容易。在VisualFoxPro界面的设计是通过使用表单及各种控件实现的。VisualFoxPro提供的各种常用控件如图11.1所示。11.1VisualFoxPro常用控件图11.1表单控件工具栏11.1VisualFoxPro常用控件1.1.标签(Label)标签控件能够在表单上显示文本信息。通过对标签控件的设定可以起到提示与说明作用。标签控件的主要属性有:Name:标签名称FontSize:标签字体大小ForeColor:字体颜色Caption:标签文字Left:标签左边位置Top:标签上边界位置Width:标签宽度Height:标签高度Left和Top属性决定了标签在表单中的位置,Width和Height属性决定了标签的大小。标签的使用示例如图11.2中所示,在图11.2中共有3个标签,设置标签的属性可通过属性窗口进行(如图11.3所示),要设置哪一个标签的属性,应先选中该标签,再在属性窗口中进行设置。图11.2学生管理系统关于窗口标签控件图11.3标签的属性窗口2.图像(Image)利用图像控件可以在表单上加载图像,所加载图像的常见类型有:.BMP、.ICO、.GIF、.JPG等。图像控件的主要属性有:Picture:指定要加载的图像文件名BorderStyle:指定图像边框,为0表示图像没有边框,为1表示图像的边框固定为单线Stretch:决定图像的填充方式,有3种图像填充方式0-剪裁(默认值)1-等比填充2-变比填充图像控件的使用示例如图11.5所示。图11-5图像控件填充样式剪裁填充等比填充变比填充3.线条(Line)线条控件用于在表单上画各种类型的线条:斜线、垂直线和水平线。线条控件的主要属性有:BorderColor:指定线的颜色BorderStyle:指定线型LineSlant:指定线条如何倾斜,从左上到右下或是从左下到右上(\/)Height:设置线条的高度,为0就为水平线Width:设置线条的宽度,为0值就为垂直线。图11-6线条控件示例线条例11.3在例11.2表单中添加线条控件(如图11-6)。4.形状(Shape)形状控件用于在表单上创建各类形状:矩形、圆角矩形、正方形、圆角正方形、椭圆或圆。形状控件的主要属性有:BoderColor:设置形状控件边框的颜色BoderWidth:设置形状控件的宽度Curvature:设置形状控件的角的曲率(30,60,90)FillColor:设置形状控件的填充颜色FillStyle:设置形状控件的填充图案Height:设置形状控件的高度Left:设置形状控件的左连界的位置Name:设置形状控件的名称Top:设置形状控件的上边界的位置Visible:设置形状控件的是否可见Width:设置形状控件的宽度形状控件的Curvature、Height和Width这三个属性综合在一起可以形成不同的形状类型(见下表):CurvatureHeight与Width相等Height与Width不等0正方形矩形1-99小圆角正方形→大圆角正方形→圆小圆角矩形→大圆角矩形→椭圆图11-7形状控件示例5.文本框(TextBox)形状控件用于在表单上创建各类形状:矩形、圆角矩形、正方形、圆角正方形、椭圆或圆。形状控件的主要属性有:BoderColor:设置文本框控件边框的颜色BoderWidth:设置文本框控件的宽度Curvature:设置文本框控件的角的曲率FillColor:设置文本框控件的填充颜色FillStyle:设置文本框控件的填充图案Height:设置文本框控件的高度Maxlength:设置文本框控件可输入的最大字符数,若为0表示没有限制Name:设置文本框控件的名称PasswordChar:设置文本框控件用作占位符的字符ReadOnly:设置文本框控件中的内容是否为只读Value:文本框控件中的文本内容文本框的使用示例见图11-8所示。图11-8学生管理系统的登录窗体文本框6.编辑框(EditBox)编辑框能够输入与处理多段的文本,常用来处理长的字符型数据或备注型字段。在VisualFoxPro系统中还提供了ScrollBars属性来显示垂直滚动条。编辑框与文本框的不同之处在于:(1)编辑框只能接收文本数据。而文本框则能接收多种数据类型。(2)编辑框能接收多段数据,回车不能终止其数据接收。而文本框只能接收一段数据。编辑框的主要属性有:编辑框的主要属性有:ControlSource:指定与编辑框对象建立联系的数据源Maxlength:指定编辑框中可输入的最大字符数,若该属性为0表示没有限制Name:设置编辑框控件的名称ReadOnly:指定用户能否编辑框控件中的内容ScrollBars:指定编辑框控件具有的滚动条的类型0–表示没有滚动条2–表示具有垂直滚动条SelLength:设置或返回辑框对象中被选中文本的字符个数。SelStart:设置或返回辑框对象中被选中文本的起始点位置。SelText:返回编辑框对象中被选中的文本。Value:指定或返回辑框对象中的文本内容。编辑框的使用示例如图11-9所示。图11-9编辑框中的文本选择7.命令按钮(CommandButton)/命令按钮组CommandGroup)命令按钮控件主要用来为用户提供不同操作的选择。用户可以通过它改变程序的执行过程,完成不同的功能调用。当用户用鼠标单击命令按钮时,将触发命令按钮的“Click”事件代码从而完成相应的操作。命令按钮的主要属性:Caption:命令按钮标题文本。Enabled:命令按钮使能属性,该属性为.T.,则命令按钮能接收事件,为.F.则不能接收事件。Name:命令按钮控件名称。命令按钮的主要事件:Click:命令按钮单击事件,当用鼠标单击命令按钮时发生该事件。命令按钮使用示例如图11-10所示。图11-10命令按钮使用示例在图6-10中的命令按钮名称为C1,要编写其Click事件代码可双击该按钮,屏幕上出现代码窗口,在对象下拉列表框中选择“C1”,在过程下拉列框中选择“Click”,然后编写事件代码。命令按钮组控件是包含了若干个命令按钮的一种容器。通过它可以统一的管理按钮组,也可以单独地管理每一个按钮。图11-11是一个具有4个按钮的按钮组示例。图11-11命令按钮组命令按钮组的主要属性有:ButtonCount:指定命令按钮组中的按钮数。Enabled:指定命令按钮组能否接收和响应事件;当该属性为.T.时可以接收和响应事件,为.F.则不能。Name:指定命令按钮组对象的名称。Value:当命令按钮组中的按钮被点击时,该属性返回是第几个按钮组中是第几个按钮被点击,若命令按钮组中第一个按钮被点击,则返回1,若是第二个按钮被点击则返回2。可直接用鼠标拖放来改变命令按钮组的大小和位置,若要改变命令按钮组中按钮的大小和位置,应先选中命令按钮组,然后点击鼠标右键,在弹出的快捷菜单中选择“编辑”菜单项,当命令按钮组处于编辑状态时,其外有一个绿色边框,之后就可以对命令按钮组中按钮的大小和位置进行修改了。也可用命令组生成器来设计命令按钮组,其操作步骤是:先选中命令按钮组对象,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上将出现如图11-12所示的命令组生成器。图11-12命令组生成器8.选项按钮组(OptionGroup)选项按钮组是包含了若干个选项按钮的容器控件。选项按钮组中的若干个可选项中用户一次只能选择其中一个,选项按钮组的使用示例如图11-13所示。图11-13选项按钮组使用示例选项按钮组的主要属性有:ButtonCount:指定选项按钮组的按钮数。Name:选项按钮组对象的名称。Value:指定或返回选项按钮组中被选中的按钮。选项按钮组的生成与编辑可用选项组生成器来实现,其操作步骤是:先选中选项按钮组对象,然后单击鼠标右键,在出现的快捷菜单中选择“生成器”菜单项,屏幕上出现“选项组生成器”窗体(如图11-14所示),然后按屏幕上出现的提示操作即可。图11-14选项组生成器9.复选框(CheckBox)复选框允许同时选中多项,它可以独立存放于表单中。复选框的主要属性:Caption:指定复选框对象的标题文本。Enabled:指定复选框对象的是否可操作。Name:指定复选框对象的名称。Value:指定复选框对象的状态:0或.F.表示清除;1或.T.表示选定;2表示灰色状态。复选框的使用示例如图11-15所示图11-15复选框的使用示例10.组合框(Combobox)组合框提供了一个下拉列表,用户可以在其列表中进行值的选取,也可以由用户自己键入一个值。组合框控件的属性主要包括:ColumnCount:指定组合框对象的显示列数。Enabled:指定组合框对象的是否可操作。Name:指定组合框对象的名称。Value:指定或返回组合框对象的被选取的文本。组合框的使用示例如图11-16所示。图11-16组合框的使用示例图9可以使用组合框生成器来生成编辑组合框,其操作步骤是:首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出图6-17所示的组合框生成器窗体。图11-19列表框生成器11.列表框(Listbox)列表框与组合框比较相似,都提供了一个用户选项列表。但列表框是任何时候都显示它的列表项,并且不能由用户键入数据。列表框控件的属性主要包括:ColumnCount:指定列表框对象的显示列数。Enabled:指定列表框对象的是否可操作。Name:指定列表框对象的名称。Value:指定列表框对象的被选取的文本。列表框的使用示例如图11-18所示。图11-18列表框的使用示例可以使用列表框生成器来生成编辑列表框,其操作步骤是:首先选择要编辑的列表框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出图11-19所示的列表框生成器窗体。图11-19列表框生成器12.微调控件(Spinner)微调控件用于接受给定范围的数值输入,可以直接用键盘输入数据,也可以通过上下箭头增减当前值。微调控件常用属性有:Increment:上下箭头数值调整时的增减量。InputMask:设置输入掩码。KeyBoardHighValue:键盘输入的最大值。KeyBoardLowValue:键盘输入的最小值。Name:微调控件对象的名称。SpinnerHightValue:上下箭头数值调整的最大值。SpinnerLowValue:SpinnerLowValue。Value:设置输入掩码。KeyBoardHighValue:当前值。微调控件常用事件有:DownClickEvent:按微调控件下箭头的事件。UpClickEvent:按微调控件上箭头的事件。微调控件的使用示例如图11-20所示。图11-20微调控件的使用示例13.表格(Grid)表格控件是以表格的形式来输出与输入数据。它是由若干的行和列所组成。并且它可以用于显示多表的数据内容。通常使用表格生成器来作相关的设定。例11.13建立如图11-21的一个表单,通过表格控件来显示Class表中的数据。操作步骤如下:(1)在“表单控件工具栏”鼠标左键单击创建一个表格控件。(2)在数据环境中添加Class这张表。(3)右键单击表格控件,打开表格生成器,进行相关的设置(参见图11-22)图11-22表格控件示例图11-23表格生成器(a)图11-23表格生成器(b)图11-23表格生成器(c)图11-23表格生成器(d)14.页框(Pageframe)页框是包含多个页面的容器,用户可以根据需要建立多个页面,并且可以在每个页面当中创建