表单控件.docx
《表单控件.docx》由会员分享,可在线阅读,更多相关《表单控件.docx(20页珍藏版)》请在冰点文库上搜索。
表单控件
表单常用控件
表单设计离不开控件,而要很好地使用和设计控件,则需要了解控件的属性,方法和事件。
下面以各种控件的主要属性为线索,分别介绍常用表单控件的使用和设计。
1,标签控件
标签是用以显示文本的图形控件,被显示的文本在Caption属性中指定,称为标题文本。
标签的标题文本不能在屏幕上直接编辑修改,但可以在代码中通过重新设置Caption属性间接修改。
常用的标签属性如下:
(1)Caption属性
指定标签的标题文本。
(很多控件都有Caption属性,如表单、复选框、选项按钮、命令按钮等,标题文本的显示位置视对象类型不同而不同。
如标签的标题文本显示在标签区域内,表单的标题文本显示在表单的标题栏上。
)
(2)AutoSize属性:
指定标签是否能根据显示内容多少自动调控大小。
(3)BackStyle属性:
确定标签对象与表单背景前面颜色是否一致,0表示透明,1表示不透明。
(4)FontName属性:
指定标签中显示文本的字体名。
(5)FontSize属性:
指定标签中显示文本的字体大小。
(6)Alignment属性:
指定标题文本在控件中的显示对齐方式。
该属性包括3个属性值:
0、1和2,分别代表左对齐、右对齐和中央对齐。
(7)Name属性:
指定在程序代码中引用标签控件时所用的名称。
注意在代码设计时,应该用Name属性值(对象名称),而不能用Caption属性值来引用对象。
在同一作用域内的两个对象(如同一个表单内的两个命令按钮)可以有相同的Caption属性值,但不能有相同的Name属性值。
用户在产生表单或控件对象时,系统给予对象的Caption属性值和Name属性值是相同的,但用户可以重新对它们进行设置。
2命令按钮控件
命令按钮在应用程序中可以起控制作用,用于完成某一特定的操作,其操作代码通常放在命令按钮的Click事件过程中。
命令按钮的常用属性如下。
(1)Cancel属性:
该属性的默认值为.F.。
属性值为.T.的命令按钮称为“取消”按钮,即按下【Esc】键时得到响应的那个按钮。
(2)Caption属性:
该属性指定在按钮上显示的文本。
(3)Default属性:
该属性值为.T.的命令按钮称为“确认”按钮,即按下回车键时得到响应的那个按钮。
(4)Enabled属性:
该属性指定表单或控件能否响应由用户引发的事件,默认为.T.,即对象是有效的。
当Enabled=.F.时,用于显示只读信息。
(5)Visible属性:
指定对象是可见还是隐藏。
默认值为.T.,即对象是可见的。
图8.24例8.7示意图
【例8.8】创建一个新表单,如图8.24所示。
运行时,单击“显示”按钮,屏幕上显示“欢迎使用网上教学系统”;单击“退出”按钮,则退出运行状态。
操作步骤如下:
(1)创建一个新表单,设置表单的Caption属性为“系统”。
(2)在表单上添加一个标签控件和两个命令按钮,并设置如下属性。
①标签控件属性:
Caption属性值为空,AutoSize属性值为.T.,FontName属性值为“华文行楷”,FontSize属性值20。
②Command1和Command2的Caption属性值分别为“显示”和“退出”。
并且Command1的Default属性值为.T.。
(3)代码编写。
①Command1的Click事件代码:
Thisform.label1.Caption="欢迎使用网上教学系统"
②Command2的Click事件代码:
Thisform.release
3文本框控件
文本框(TextBox)控件是一个供用户输入或编辑数据的基本控件。
所有标准的VFP编辑功能,如复制、剪切和粘贴都可以在文本框中使用。
文本框常用属性如下。
(1)ControlSource属性:
利用该属性为文本框指定一个字段或内存变量。
运行时,文本框首先显示该变量的内容。
该属性还用于编辑框、命令组、选项按钮组、复选框、列表框和组合框等控件。
(2)Value属性:
返回文本框中的当前内容。
其默认值为空串。
如果ControlSource属性指定了字段或内存变量,那么该属性将与ControlSource属性指定的变量具有相同的数据和类型。
(3)PasswordChar属性:
指定文本框控件是显示用户输入的字符还是占位符。
该属性的默认值为空串,此时无占位符。
当为属性指定一个占位符(如*)后,文本框中只显示占位符。
该属性在设计登录口令框或密码框时经常使用。
该属性仅适用于文本框。
4复选框控件
复选框(CheckBox)控件主要用于反映某些条件是否成立,表示为真(.T.)或假(.F.)两个状态,可以单击复选框改变其值。
当处于“真”状态时,复选框内显示一个“√”;处于“假”状态时,复选框内为空白。
以下是复选框的常用属性。
(1)Value属性:
指定复选框的状态。
该属性有3种状态,当它的值为0(或F)时,表示没有选中;当它的值为1(或T)时,表示选中了复选框;当它的值为2(或NULL)时,复选框显示为灰色,为不可用状态。
如果复选框的值与数据表内容有关,还须设定数据源。
(2)Caption属性:
指定显示复选框旁边的文本信息。
(3)Controlsource属性:
指定与复选框建立关联的数据源,可以是字段变量或内存变量,变量类型可以是逻辑型或数值型。
5选项按钮组
选项按钮组(OptionGroup)又称作单选按钮,它可以建立一个选项组控件,用于显示多个选项,但只能从中选择一项。
单选按钮总是成组使用,它旁边的圆点指示当前的选择。
与命令按钮组不同,单选按钮必须且只需选择其中的一个。
选项按钮组常用属性有以下几项。
(1)ButtonCount属性:
该属性设置选项组中选项按钮的个数,系统默认值为2,即包含2个选项按钮。
如要想使一个选项按钮组包含3个按钮,可将ButtonCount属性值设为3,该属性还适用于命令按钮组。
(2)ControlSource属性:
该属性设置与选项组建立关联的数据源,可以是字段变量或内存变量。
图8.27“圆计算”运行结果
(3)Value属性:
该属性指定在选项组中哪个选项按钮被选中。
该属性值的类型可以是数值型的,也可以是字符型的。
(4)Buttons属性:
用于存取选项按钮组中每个按钮的数目。
【例8.10】利用选项按钮组编写一个程序,要求输入圆的半径,计算圆的周长、面积和体积。
操作步骤如下。
(1)打开表单设计器,在表单上设计3个标签、2个文本框、一个选项按钮组和一个命令按钮,对它的界面设计如图8.27所示。
(2)设置标签、文本框、命令按钮控件属性值如表8.10所示。
表8.10“圆计算”表单控件属性设置
控件
Caption属性
Fontsize属性
Forecolor属性
Fontname属性
Labell
计算圆的面积、周长和体积
22
255,0,0
黑体
Labe12
请输入圆的半径
20
0,0,255
楷体
Label3
计算机结果是:
20
0,0,255
楷体
续表
控件
Caption属性
Fontsize属性
Forecolor属性
Fontname属性
Textl
无
21
0,0,0
宋体
Text2
无
21
0,0,0
宋体
Command1
计算
21
255,0,0
黑体
(3)对选项按钮组CommandGroup1的设计。
选中选项按钮组CommandGroup1,单击鼠标右键,在快捷菜单中选择生成器,在弹出的“按钮”选项卡中,输入标题为“计算周长”、“计算面积”、“计算体积”,如图8.28所示。
图8.28选项组生成器
(4)程序代码的编写。
在“计算”按钮的Click事件中,编写如下代码:
r=val(thisform.text1.value)
DOCASE
CASEthisform.optiongroup1.value=1
C=2*pi( )*r&&计算圆周长
Thisform.text2.value=C
CASEthisform.optiongroup1.value=2
S=pi( )*r*r&&计算圆面积
Thisform.text2.value=S
CASEthisform.optiongroup1.value=3
V=4/3*pi( )*r*r*r&&计算圆体积
Thisform.text2.value=V
ENDCASE
6编辑框
编辑框(EditBox)与文本框相似,是用来输入和编辑数据的,但在编辑框中允许编辑长字段或备注型字段文本,而文本框不能编辑备注型字段。
编辑框允许自动换行并能用方向
图8.29“学生基本情况”表单
键、【PageUp】键和【PageDown】键以及滚动条来浏览文本。
前面介绍的文本框的有关属性(除PasswordChar属性外)对编辑框都有适用。
【例8.11】创建如图8.29所示的表单,在表单中添加如下控件:
4个标签控件、一个文本框、一个复选框、一个选项按钮组和一个编辑框(用于显示表中的备注型字段值)。
操作步骤如下。
(1)创建新表单Form1,并设置其Caption属性为“学生基本情况”。
(2)在表单上添加图8.29所示的控件,并调整好它们之间的位置。
(3)各控件的属性设置如下。
①Label1标签控件的属性。
AutoSize.T.
Caption学生基本情况
BackStyle0——透明
FontName黑体
FontSize20
②Label2~Label4标签控件的属性。
Label2~Label4标签控件的Caption属性值分别为“姓名”、“性别”、“简历”,它们的FontName属性值为“宋体”,FontSize属性值为12。
③文本框控件的属性。
Controlsource:
学生情况表.姓名
④复选框控件的属性。
Caption:
团员否
Controlsource:
学生情况表.团员否
⑤选项按钮组的属性。
ButtonCount:
2
ControlSource:
学生情况表.性别
在属性窗口的对象列表中选择Option1对象,并设置其属性如下。
AutoSize:
.T.
Caption:
男
在属性窗口的对象列表中选择Option2对象,并设置其属性如下。
AutoSize:
.T.
Caption:
女
⑥编辑框控件的属性。
ControlSource:
学生情况表.说明
(4)保存表单文件“学生基本情况表.SCX”并运行,其结果如图8.29所示。
7命令按钮组
命令按钮组控件(CommandGroup)是指将命令按钮组合到一起,这样既可单独操作,也可作为一个组来统一操作。
命令按钮组能把执行一系列相关操作的命令按钮编成一组,把公共代码放在组内的同一个方法中。
以下是命令按钮组的常用属性。
ButtonCount属性:
该属性用于指定命令组中命令按钮的数目。
在表单中创建一个命令按钮组时,其属性默认值为2,但可以通过改变ButtonCount属性的值来重新设置命令按钮组中包含的命令按钮的数目。
如要想使一个命令按钮组包含5个命令按钮,则可将其ButtonCount属性值设为5。
其他的一些属性如Value、Button等属性与选项按钮组相同。
要让组中所有命令按钮的Click事件代码都用同一个程序过程,可将代码加入命令按钮组的Click事件代码中。
命令按钮组的Value属性指明了单击哪个按钮。
【例8.12】打开例8.11所做的表单,并向其中添加一个命令按钮组,用于对数据记录进行操作。
操作步骤如下。
(1)打开例8.11所做的表单,向其中添加一个命令按钮组CommandGroup1。
(2)设置命令按钮组的属性。
ButtonCount:
4。
(3)右键单击命令按钮组控件,从快捷菜单中选择“编辑”命令,依次选中其中的Command1、Command2、Command3、Command4按钮对象,分别设置各自的Caption属性。
Command1.Caption=“第一条记录”
Command2.Caption=“上一条”
Command3.Caption=“下一条”
Command4.Caption=“末条记录”
(4)双击命令按钮组,打开“代码”窗口,输入CommandGroup1的Click事件代码。
DOCASE
Casethis.value=1
gotop
Thisform.refresh
Casethis.value=2
skip-1
ifbof( )
gotop
endif
Thisform.refresh
Casethis.value=3
skip
ifeof( )
gobottom
endif
Thisform.refresh
Casethis.value=4
gobottom
thisform.refresh
ENDCASE
(5)保存表单并运行,结果如图8.30所示。
图8.30在表单中添加命令按钮组
8列表框
列表框(ListBox)主要用来显示一组预定的值,用户可以从中选择一项或多项数据,当列表框中数据较多时,可使用滚动条来浏览列表信息。
1.一些常用的列表框属性
(1)RowSourceType属性:
该属性指定列表框中条目的数据源的类型,其值可取表8.9中的0~9。
(2)RowSource属性:
该属性指定列表项的数据源。
表8.11列出了两者属性的常用搭配。
该属性同样适用于组合框。
表8.11RowSourceType属性与RowSource属性的搭配
取值
含义
说明
0
无(默认)
在程序运行时,通过AddItem方法添加列表框条目,通过RemoveItem移去
1
值
通过RowSource属性手工指定
2
别名
RowSource=表名,用ColumnCount指定字段数
3
SQL语句
RowSource=“SQL语句”
4
查询
RowSource=“查询文件全名”
5
数组
数组中的内容作为条目,RowSource=数组名
6
字段
字段内容作为条目,RowSource=“字段名列表”
7
文件
文件名作为条目,RowSource设为文件类型,如“*.dbf”
8
结构
字段名作为条目,由RowSource属性指定表
9
弹出菜单
将弹出菜单作为列表框条目的数据源
(3)List属性:
该属性用于存取列表框中数据条目的字符串数组。
如List[1]代表列表框的第一行。
该属性在设计时不可用,在运行时可读或写。
此外,该属性还适用于组合框。
(4)ListCount属性:
该属性指明列表框中数据条目的数目。
该属性在设计时不可用,在运行时只读,同时还适用于组合框。
(5)Selected属性:
该属性指定列表框内的某个条目是否处于选定状态。
(6)ControlSource属性:
该属性在列表框内的用法与其他控件中的用法不同,在这里,用户可以通过该属性指定一个字段或变量用于保存用户从列表框中选择的结果。
(7)MultiSelect属性:
该属性指定用户能否在列表框控件内进行多重选定。
其中,0或.F.表示不允许多重选定;1或.T.表示允许多重选定。
2.列表框生成器
将鼠标移到列表框的控件上,单击右键,在弹出的快捷菜单中执行“生成器”命令,将会弹出列表框生成器。
列表框生成器含有列表项、布局、样式、值4个选项卡,用于为列表框设置各种属性。
9组合框
组合框(ComboBox)有列表框和文本框的功能,用户可以在其中输入值或从列表中选择数据项。
有两种形式的组合框:
下拉组合框和下拉列表框。
通过更改控件的Style属性可选择需要的形式。
(1)Style为0,表示为下拉组合框,用户可以从编辑框输入或从列表中选择。
(2)Style为1,表示为下拉列表框,用户只能从列表中选择。
一般当选项很少时,用组合框,当选项很多时,用列表框。
组合框的特点有以下几点。
(1)组合框不提供多重选择功能,没有MultiSelect属性。
(2)组合框有两种形式,下拉组合框和下拉列表框。
通过设置Style属性可选择想要的形式。
上述列表框的属性(除MultiSelect属性外)都适用于组合框。
【例8.13】打开例8.12所做的表单,并向其中添加一个下拉列表框,用于选择学生的专业。
操作步骤如下。
(1)打开例8.12所做的表单,在表单设计器窗口中添加一个标签控件和一个下拉列表框,并调整各个控件的位置。
(2)设置标签控件的如下属性。
Autosize:
.T.
Caption:
专业
(3)设置下拉列表框控件的如下属性。
Style:
2—下拉列表框
RowsourceType:
1—值
Rowsource:
法律,管理,中文,计算机,物理
(4)保存表单文件并运行,效果如图8.31所示。
【例8.14】建立如图8.32所示的表单,运行表单时,组合框中有学生姓名列表供选择,在组合框中选择学生姓名后,如果单击“查询”命令按钮,则在以下文本框中分别显示出该学生的性别和籍贯;如果单击“退出”按钮则关闭表单。
操作步骤如下。
(1)新建一表单文件,表单的Caption属性为“学生信息”、Backcolor属性为255,255,0。
图8.31在表单中添加下拉列表框图8.32例8.14的运行界面
(2)在表单中添加3个标签控件,它们的Caption属性分别为“学生姓名”、“性别”、“籍贯”、一个组合框Combo1、两个文本框Text1和Text2和两个命令按钮Command1和Command2,它们的Caption属性分别为“查询”和“退出”。
(3)打开属性框,对组合框Combo1、两个文本框Text1和Text2进行如下属性设置。
①组合框Combo1的属性。
RowSourceType:
6—字段
RowSource:
学生情况表.姓名
②文本框Text1的属性。
Name:
TEXTSEX
Controsource:
学生情况表.性别
③文本框Text2的属性。
Name:
TEXTJG
Controsource:
学生情况表.籍贯
(4)代码编写。
在Command1的Click事件中,编写如下代码:
Thisform.refresh
在Command2的Click事件中,编写如下代码:
Thisform.release
8.4.10表格控件
表格控件(Grid)可通过在窗体中显示浏览窗口来显示数据的内容。
通过表格控件对象,用户可以查询、新增、修改或删除数据表的记录。
因此它是一个非常重要并且好用的对象。
表格是一个容器对象,主要用来显示和操作多行数据,一个表格对象由若干列对象(Column)组成,每个列对象都包含一个标头对象(Header)和若干个控件。
这里的表格、列、标头和控件都有自己的属性、事件和方法,使得用户对表格的控制变得更加灵活。
表格控件的常用属性如下。
1.常用的表格属性
(1)RecordSource属性:
该属性指定与表格对象建立联系的数据源。
(2)RecordSoureType属性:
该属性指定数据源的类型。
(3)ColumnCount属性:
该属性指定表格对象的列数,即一个表格对象包含的列对象的数目。
(4)Readonly属性:
该属性用来指明表格所连接的数据表是否允许被更改。
2.常用的列属性
ControlSource属性:
该属性指定列中显示的数据源,常见的是表中的一个字段。
如果不设该属性,列中将显示表格数据源中下一个还没有显示的字段。
3.常用的标头属性
(1)Caption属性:
该属性指定对象的标题文本,显示于列顶部。
(2)Alignment属性:
该属性指定标题文本在对象中显示的对齐方式。
将表格添加到表单中方法有两种。
(1)如果要为一个表创建表格控件,可以先将该表添加到表单的数据环境中,然后在数据环境中用鼠标拖动该表的标题栏到表单窗口后释放,就会产生一个类似于Browse窗口的表格。
(2)可在控件工具栏中选择表格按钮,并在表单窗口中拖动鼠标,使表格达到所期望的大小,然后在表格上右键单击鼠标,选择“生成器”,打开“表格生成器”对话框设置表格的属性,如图8.33所示。
图8.33表格生成器
【例8.15】设计一个具有查询功能的表单。
在“学生情况表”中能够按专业对学生进行查询,如图8.34所示。
操作步骤如下。
(1)在表单上创建一组合框控件Combo1,单击鼠标右键,在快捷菜单中选择“生成器”命令,在生成器“列表项”中设置“用手工输入数据”来填充列表,并在列1中输入数据,如图8.35所示。
(2)打开数据环境设计器,添加“学生情况表.DBF”,用鼠标选中“学生情况表.DBF”的标题栏,拖动它到表单上。
图8.34“按专业查询”结果
图8.35“列表项”选项卡
(3)创建一个命令按钮Command1,设置Command1的Caption属性为“退出查询”;创建两个标签控件Lable1、Lable2,设置Lable1的Caption属性为“学生信息查询”,Fontname属性为“黑体”,Forecolor属性为“255,0,0”;设置Lable2的Caption属性为“按专业查询:
”。
(4)编写程序代码。
①在组合框Combo1的Click过程中,编写如下代码:
SETFILTTO&&关闭过滤器,显示所有记录信息
DOCASE
CASEthis.value="汉语言文学"
setfiltto专业="汉语言文学"&&按专业进行过滤
CASEthis.value="应用数学"
setfiltto专业="应用数学"
CASEthis.value="计算机科学与技术"
setfiltto专业="计算机科学与技术"
ENDCASE
Thisform.refresh
②在命令按钮“退出查询”的Click事件过程中,编写如下代码:
Thisform.release&&释放表单
【例8.16】根据学生情况表.DBF和学生选课表.DBF建立一个如图8.36所示的表单。
该表单具有如下功能:
运行表单时,列表框显示两张表的文件名如图8.36所示,在列表框中选择一个表文件名,单击浏览按钮,则在表格中显示对应的表文件,要求浏览学生情况表时,表格包含如下字段:
姓名,性别,专业;浏览学生选课表时,表格包含如下字段:
学号,课程号,成绩。
图8.36列表框和表格控件
操作步骤如下:
(1)新建一表单,表单标题为表浏览,设置其Backcolor属性为64,128,128。
(2)在表单上添加一个列表框控件、一个命令按钮和一个表格控件。
打开数据环境设计器,把学生情况表.DBF和学生选课表.DBF分别添加到里面。
设置列表框控件的属性为RowsourceType:
1-值,Rowsource:
学生情况表,学生选课表。
命令按钮控件的Caption属性为浏览。
(3)程序代码(用SQL—SELECT语句)。
在命令按钮浏览的Click事件过程中,编写如下代码:
X=THISFORM.LIST1.VALUE
Ifx='学生情况表'
SELECT姓名,性别,专业FROM学生情况表INTOCURSORTEMP
ELSE