对于一般控件,按下相应的访问键,将激活该控件,使该控件获得焦点。
而对于标签,按下相应的访问键,将把焦点传递给tab键次序中紧跟着标签的下一个控件。
比如,在某个列表框的上方放置一个标签,并把列表框的Tab键次序安排在标签之后,这样,按下标签访问键时,其下方的列表获得焦点。
访问键的使用方法受KEYCOMP设置(DOS或WINDOWS)的影响。
在当前表单激活的情况下,访问键的使用方法如表所示。
设置值
效果
DOS
直接按访问键选择对象,若当前焦点处于组合框、列表框等要接收键盘输入的对象时,访问键无效。
WINDOWS
一般情况下直接按访问键选择对象。
若当前焦点处于组合框、列表框等要接收键盘输入的对象时,按组合键Alt+<访问键〉选择对象。
∙Label控件标题的大小没有限制。
对于窗体和所有别的有标题的控件,标题大小的限制是255个字符。
提示对于标签来说,将AutoSize属性设为True自动调整控件的大小以与其标题相适合。
∙Alignment属性
指定的标题文本在控件中显示的对齐方式
语法
object.Alignment[=number],该属性的设置值如表所述。
设置值
说明
0
(默认值)左对齐,文本显示在区域的左边
1
右对齐,文本显示在区域的右边
2
中央对齐,将文本居中排放,使左右两边的空白相等
例表单中有三个标签,当鼠标单击任何一个标签时,都使其他两个标签的标题互换。
容要点:
假设三个标签的名称(name属性值)分别是Label1、Label2、Label3,它们可以从属性窗口中获得。
I.标签Label1的Click事件代码为:
t=thisform.Label2.Captipn
thisform.Label2.Caption=thisform.Label3.Caption
thisform.Label3.Caption=t
II.标签Label2的click事件代码为:
t=thisform..label1.Caption
thisform.Label1.Caption=thisform.Label3.Caption
thisform.Label3.Caption=t
III.标签Label3的click事件代码为:
t=thisform.Label1.Caption
thisform.Label1.Caption=thisform.Label2.Caption
thisform.Label2.Caption=t
操作步骤:
i.创建表单,然后在表单中添加3个标签按钮。
ii.分别为3个标签控件设置caption属性,如示意图所示。
iii.分别为3个标签控件设置click事件代码。
返回
命令按钮(CommandButton)控件
CommandButton控件可以开始、中断或者结束一个进程。
选取这个控件后,CommandButton显示按下的形状,所以有时也称之为下压按钮。
为了在CommandButton控件上显示文本,需要设置其Caption属性。
可以通过单击CommandButton选中这个按钮。
为了能够在按ENTER键时也选中命令按钮,需要将其Default属性设置为True。
为了能够按ESC键时也选中CommandButton,则需要将CommandButton的Cancel属性设置成True。
常用属性有以下几个:
∙default属性
返回或设置一个值,以确定哪一个CommandButton控件是窗体的缺省命令按钮。
语法
object.Default[=boolean]
Default属性语法包含下面部分:
部分
描述
Object
对象表达式
Boolean
布尔表达式,指定该命令按钮是否为缺省按钮,
∙设置值
boolean的设置值为
设置值
描述
True
该CommandButton是缺省命令按钮。
False
(缺省值)该CommandButton不是缺省命令按钮。
∙ 窗体中只能有一个命令按钮可以为缺省命令按钮。
当某个命令按钮的Default设置为True时,窗体中其它的命令按钮自动设置为False。
确认按钮的行为要受KEYCOMP设置(DOS或WINDOWS)的影响。
在“确认”按钮所在的表单激活的情况下,“确认”按钮的行为如表所示。
设置值
效果
DOS
按Ctrl+Enter,选择“确认”按钮,执行click事件代码
WINDOWS
当焦点不在命令按钮上时,按enter,选择“确认”按钮,执行click事件代码。
∙Cancel属性
使用Cancel属性使得用户可以取消未提交的改变,并把窗体恢复到先前状态。
窗体中只能有一个CommandButton控件为取消按钮。
当一个CommandButton控件的Cancel属性被设置为True,窗体中其它CommandButton控件的Cancel属性自动地被设置为False。
当一个CommandButton控件的Cancel属性设置为True而且该窗体是活动窗体时,用户可以通过单击它,按ESC键,或者在该按钮获得焦点时按ENTER键来选择它。
∙Enabled属性
Enabled属性允许在运行时使窗体和控件成为有效或无效。
默认值为.T.
Enabled属性使得用户(程序)可以根据应用的当前状态随时决定一个对象是有效的还是无效的,也可以限制一个对象的使用,如用一个无效的编辑框(Enabled=.f.)来显示只读信息。
说明:
如果一个容器对象的enable属性值为.f.,那么它里面的所有对象也都不会响应用户引发的事件。
∙Visible属性
指定对象可见还是隐藏。
在表单设计器中,默认值为.T.,在程序代码中,默认值为.F.,一个对象即使是隐藏的,在代码中可以访问它。
当一个表单由活动变成隐藏时,最近活动的表单或其他对象将成为活动的。
当一个表单的Visible属性由.F.设置成.T.时,表单将成为可见的,但并不成为活动的。
要使一个表单成为活动的,可使用show方法。
show方法是表单成为可见的同时,使其成为活动的。
返回
命令组(CommandGroup)控件
命令组控件是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作其中的按钮。
在表单设计器中,为了选择命令组中的某个按钮,有如下两种方法:
从属性窗口的对象下拉式组合框中选择所需的命令按钮;用鼠标右键单击命令组,然后从弹出的快捷菜单中选择“编辑”命令,这样命令组就进入了编辑状态,用户可以通过鼠标单击来选择某个具体的命令按钮。
常用的属性有:
∙ButtonCount属性
指定命令组中命令按钮的数目。
在表单中创建一个命令组时,ButtonCount属性的默认值是2,既包含两个命令按钮。
可以通过改变ButtonCount属性的值来重新设置命令组中的包含的命令按钮数目。
∙buttons属性
用于存取命令组中各按钮的数组。
该属性数组在创建命令组时建立,用户可以利用该数组为命令组中的命令按钮设置属性或调用其方法。
例如,下面代码可以放在与命令组myCommandG处于同一表单中的某个对象的方法或事件代码中,其命令组中的第二个按钮设置成隐藏的:
ThisForm.myCommandG.Buttons
(2).Visible=.F.
属性数组下标的取值围应该在1至ButtonCount属性值之间。
该属性在设计时不可用。
除了命令组,还适合于选项组。
∙value属性
指定命令组当前的状态。
该属性的类型可以是数值型的,也可以是字符型的。
如果命令组的某个按钮有自己的click事件代码,那么一旦单击该按钮,就会优先执行为它单独设置的代码,而不会执行命令组的click事件代码。
该属性在设计和运行时可用。
返回
文本框(textBox)控件
用户利用它可以在存变量、数组元素或非备注型字段中输入或编辑数据。
文本框可以编辑任何类型的数据。
如果编辑的是日期型或日期时间型数据,那么在整个容被选定的情况下,按“+”或“-”,可以使日期增加一天或减少一天。
为了在TextBox控件中显示多行文本,要将MultiLine属性设置为True。
如果多行TextBox没有水平滚动条,那么即使TextBox调整了大小,文本也会自动换行。
为了在TextBox上定制滚动条组合,需要设置ScrollBars属性。
如果文本框的MultiLine属性设置为True而且它的ScrollBars没有设置为None(0),则滚动条总出现在文本框上。
如果将MultiLine属性设置为True,则可以在TextBox用Alignment属性设置文本的对齐。
如果MultiLine属性是False,则Alignment属性不起作用。
常用的属性为:
∙ControlSource属性
一般情况下,可以利用该属性为文本框指定一个字段或存变量。
运行时,文本框首先显示该变量的容。
而用户对文本框的编辑结果,也会最终保存到该变量中。
该属性在设计和运行时可用。
除了文本框,还适用于编辑框、命令组、选项按钮、选项组、复选框、列表框、组合框等控件。
∙value属性
返回文本框当前容。
该属性默认值是空串。
如果ControlSource属性指定了字段或存变量,则该属性将ControlSource属性指定的变量具有相同的数据和类型。
为了在对话框中创建一个密码域应使用此属性。
虽然能够使用任何字符,但是大多数基于Windows的应用程序使用号(*)(Chr(42))。
此属性不影响Text属性;Text准确地包括所键入或代码中所设置的容。
将PasswordChar设置为长度为0的字符串("")(缺省值),将显示实际的文本。
能够将任意字符串赋予此属性,但只有第一个字符是有效的,所有其它的字符将被忽略。
注意如果MultiLine属性被设为True,那么设置PasswordChar属性将不起效果。
∙InputMask属性
指定在一个文本框中如何输入和显示数据。
InputMask属性值是一个字符串。
该字符串通常有一些所谓的模式符组成,每个模式符规定了相应的位置上数据的输入和显示行为。
X
允许输入任何字符
9
允许输入数字和正负号
#
允许输入数字、空格和正负号
$
在固定位置上显示当前货币符号(由SETCURRENCY命令指定)
$$
在数值前面相邻的位置上显示当前货币符号(浮动货币符)
*
在数值左边显示*
.
指定小数点的位置
分隔小数点左边的数字串
inputmask属性值中可包含其他字符,这些字符在文本框中将会原样显示。
该属性在设计和运行时可用。
除了文本框,还适用于组合框、列等控件。
例用表单设计一个登陆界面,如图所示,当输入用户名和口令并按确认键后,检验其输入是否正确,若正确(假定用户名为ABCDEF,口令为123456),就显示“欢迎使用...”若不正确,则显示“用户名或口令不对,”如果三次输入不正确,就显示“用户名或口令不对,登陆失败!
”并关闭。
要将“确认”按钮设置为Default按钮。
另外,口令限制为6位数字,输入时显示*号。
容要点:
假设“用户名”文本框、“口令”文本框以及“确认”命令按钮的name属性值分别为Text1、Text2和command1。
Text2的InputMask属性值为999999,passwordChar属性值为*。
Command1的Default属性值为.T.。
命令按钮Command1的click事件代码如下,其中num是为表单新添加的属性,用以保存本次登陆输入的次数。
ifthisform.text1.value="ABCDEF"andthisform.text2.value="123456"
wait"欢迎使用..."windowtimeout1
thisform.release
else
thisform.num=thisform.num+1
ifthisform.num=3
WAIT"用户名或口令不对,登陆失败!
"windowtimeout1
thisform.release
else
WAIT"用户名或口令不对,请重输!
"windowtimeout1
endif
endif
操作步骤:
o创建表单,然后在表单上添加两个标签、两个文本框和一个命令按钮。
o设置两个标签和一个命令按钮的caption属性值,并将命令按钮的default属性值设置为.T.。
o设置文本框text2的inputmask属性值。
可在设置框直接输入999999或输入="999999"。
设置文本框text2的passwordchar属性值。
o从“表单”菜单选择“新建属性”命令,打开“新建属性”对话框,为表单添加新属性num。
然后在“属性”窗口中将其默认值设为0。
o设置“确认”按钮的click事件代码。
返回
编辑框(editbox)控件
与文本框相似,但它有自己的特点:
编辑框实际上是一个完整的字处理器,利用它能够选择、剪切、粘贴以及复制正文;可以实现自动换行;能够有自己的垂直滚动条可以用箭头键在正文里面移动光标。
编辑框只能输入、编辑字符型数据,包括字符型存变量、数组元素、字段以及备注字段里的容。
常用属性有:
∙allowtabs属性
指定编辑框中能否使用tab键。
其属性值设置如表所示。
该属性在设计时和运行时均是可用的。
设置值
说明
True(.T.)
编辑框里允许使用tab键;按Ctrl+Tab时焦点移出编辑框
False(.F.)
编辑框里不能使用tab键,按tab时焦点移出编辑框
∙hideselection属性
指定当前编辑框失去焦点时,编辑框中的选定的文本是否仍显示为选定状态。
该属性在设计时和运行时均是可用的。
除了编辑框,还适用于文本框、组合框等控件。
设置值
说明
True(.T.)
(默认值)失去焦点时,编辑框中选定的文本不显示为选定状态。
当编辑框再次获得焦点时,选定文本重新显示为选定状态
False(.F.)
失去焦点时,编辑框中选定的文本仍显示为选定状态
∙readonly属性
指定用户能够编辑编辑框中的容。
其属性设置如表所示。
readonly属性与enabled属性是有区别的。
尽管在readonly为.T.和enabled为.F.两种情况下,都使编辑框具有只读的特点,但在前两种情况下,用户仍能够移动焦点至编辑框上并使用滚动条,而后种情况则不可能。
该属性在设计时可用,在运行时可读写。
除了编辑框,还适用于文本框、表格等控件。
设置值
说明
True(.T.)
不能编辑编辑框中的容
False(.F.)
(默认值)能够编辑编辑框中的容
∙srollbars属性
指定编辑框是否具有滚动条,当属性值为0时,编辑框没有滚动条;当属性值为2时,编辑框有垂直滚动条。
该属性在设计时可用,在运行时可写。
除了编辑框,还适用于表单、表格等控件。
∙selstart属性
返回用户在编辑框中所选文本的起始点位置(没有文本选定时)。
也可用以指定要选文本的起始位置或插入点位置。
属性的有效取值围在0与编辑区中的字符总数之间。
该属性在设计时不可用,在运行时可读写。
除了编辑框,还适用于文本框、组合框等控件。
∙selLength属性
返回用户在控件的文本输入区中所选定字符的数目,或指定要选定的字符数目。
属性的有效围在0与编辑区中的字符总数之间,若小于0,将产生一个错误。
该属性在设计时不可用,在运行时可写。
除了编辑框,还适用于文本框、组合框等控件。
∙seltex属性
返回用户编辑区选定的文本,如果没有选定任何文本,则返回空串。
该属性在设计时不可用,在运行时可读写。
除了编辑框,还适用于文本框、组合框等控件。
selstart属性、selLength属性和seltex属性配合使用,可以完成诸如设置插入点的位置、控制插入点的移动围、选择字串、清除文本等的一些任务。
使用这些属性时,需要注意它们的以下行为:
▪如果把sellength属性值设置成小于0,将产生一个错误。
▪如果selstart的设置值大于文本总字符数,系统将其调整为文本的总字符数,即插入点位于文本末尾。
▪如果改变了selstart属性的值,系统将自动把sellength属性值设置0如果selstart属性设置成一个新值,那么这个新值会去置换编辑区中的所选文本并将sellength置为0。
▪如果sellength值本来就是0,那么新值就会被插入到插入点处。
例表单里饱含一个编辑框edit1和两个命令按钮command1(查找)、command2(替换),如图所示,要求:
单击command1时,选择edit1里的某个单词example;单击command2时,用单词exercise置换一选择的单词example。
容要点:
编辑框的hideselection属性值为.F.,这样“查找”命令按钮找到的字符串就会显示成选定状态。
命令按钮command1的click事件代码为:
n=at("example",thisform.edit1.value)
ifn<>0
thisform.edit1.selstart=n-1
thisform.edit1.sellength=len("example")
else
WAITWINDOWS"没有相匹配的单词"TIMEOUT1
endif
命令按钮command2的click事件代码为:
ifthisform.edit1.seltex="example"
thisform.edit1.seltext="excercise"
else
WAIT WINDOWS"没有选择需要置换的单词"TIMEOUT1
endif
操作步骤:
o创建表单,然后在表单上田纪一个编辑框两个命令按钮。
o检查编辑框控件的name属性值是否与题目中所说的名称一致。
o如果不一致,应该进行设置,否则,就需要对上面的代码作相应的修改。
o设置编辑框的hideselection属性值。
分别设置两个命令按钮的caption属性值。
o分别为两个命令按钮设置click事件代码。
返回
复选框(checkbox)控件
一个复选框用于标记一个两值状态,如真(.T.)或假(.F.)。
当处于真状态时,复选框显示一个对勾;否则,复选框为空白。
∙caption属性
用来指定复选框旁边的文字。
∙value属性
用来指明复选框的当前状态。
设置值有三种情况如表所示
复选框(checkbox)控件
一个复选框用于标记一个两值状态,如真(.T.)或假(.F.)。
当处于真状态时,复选框显示一个对勾;否则,复选框为空白。
∙caption属性
用来指定复选框旁边的文字。
∙value属性
用来指明复选框的当前状态。
设置值有三种情况如表所示
属性值
说明
0或.f.
(默认值),未被选中
1或.t.
被选中
2或.null.
不确定,只在代码中有效
∙controlsource属性
指明与复选框建立联系的数据源。
作为数据源的字段变量或存变量,其类型可以是逻辑型或数值型。
对于逻辑型变量,值.F.、.T.和.null.分别对应复选框未被选中、被选中和不确定。
对于数值型变量,值0、1和2(或.null.)分别对应复选框未被选中、被选中和不确定。
用户对复选框操作结果会自存储到数据源变量以及value属性中。
复选框的不确定状态与不可选状态不同。
不确定状态只表明复选框的当前状态值不属于两个正常状态之中的一个,但用户仍能对其进行选择操作,并使其变为确定状态。
而不可选状态则表明用户现在不适合针对它作出某种选择。
在屏幕上,不确定状态复选框以灰色显示,标题文字正常显示。
而不可选状态复选框标题文字的显示颜色由diasbledbackcolor和diasbledforecolor
返回
选项组(optiongroup)控件
选项按钮组是包含选项按钮的容器。
通常,选项按钮允许用户指定对话框中几个操作选项中的一个,而不是输入数据。
设置选项按钮组中的选项按钮数目
在表单中创建一个选项按钮组时,它默认地包含两个选项按钮,改变ButtonCount属性可以设置选项按钮组中的选项按钮数目。
∙ButtonCount属性
设置ButtonCount属性,表示所需的选项按钮数目。
∙Value属性
选项按钮组的Value属性表明用户选定了哪一个按钮。
例如,选项按钮组有六个选项按钮,如果用户选择了第四个选项,选项按钮组的Value属性就是4。
∙ControlSource属性
指明与选项组建立联系的数据源。
作为选项组数据源的字段变量或存变量,其类型可以示数值型或字符型。
比如,变量值为数值型3,则选项组中第三个按钮被选中;若变量值为字符型“option3”,则caption属性值为“option3”的按钮被选中。
用户对选项组操作结果会自动存储到数据源变量以及value属性中。
∙Buttons属性
还可以在运行时刻使用Buttons属性,并指定选项按钮在组中的索引号来设置这些属性。
例如,如果optCust是组中的第三个按钮,下面一行代码同样完成对optCust标题的设置:
THISFORM.opgChoices.Buttons(3).Caption="SortbyCustomer"
返回
列表框(listbox)控件
列表框提供一组条目(数据项),用户可以从中选择一个或多个条目。
一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。
常用的属性:
∙rowsourcetype
∙rowsourcetype属性指明列表框中条目数据源的类型,rowsource属性指定列表框的条目数据源。
∙r