第6章 常用表单控件的使用
6.1 判断题
1.当形状Shape控件的Curvature属性设置为99时,形状显示为圆。
【答案】√
【分析】当形状Shape控件的Curvature属性设置为99时,形状显示为圆;而当Curvature属性设置为0时,形状显示为直角。
2.当把标签的前景色设置为RGB(255,255,255)时,标签里的文字显示为黑色。
【答案】×
【分析】当把标签的前景色设置为RGB(255,255,255)时,标签里的文字显示为白色;当设置为RGB(0,0,0)时显示为黑色。
3.在图像(Image)控件中可以放入其他控件。
【答案】×
【分析】图像(Image)是控件类对象,而不是容器类对象,所以是不能放入其他控件的。
4.设置文本框的PassWordChar属性为“*”,文本框输入的数据将被“*”替换。
【答案】√
5.当文本框的Valid事件返回.F.时,光标将不能离开文本框。
【答案】√
【分析】只有当文本框的Valid事件返回.T.时,光标才能离开文本框。
6.Caption属性是文本框的一个主要属性。
【答案】×
【分析】文本框没有Caption属性,Value应该是文本框的一个主要属性。
7.在编辑框中可以显示和编辑表文件中的日期型字段。
【答案】×
【分析】在编辑框中可以显示和编辑表文件中的字符型数据和备注型字段,不能与日期型字段绑定,否则数据类型不匹配。
8.列表框、组合框的数据源是通过属性RowSourceType和RowSource进行设置的。
【答案】√
9.若要在列表框的值改变时执行某段代码,应该将该段代码编写在其Click事件中。
【答案】×
【分析】若要在列表框的值改变时执行某段代码,应将该段代码编写在其InterActiveChange事件中。
10.当组合框的Style属性设置为2时,其功能与列表框是一样的。
【答案】√
【分析】设置为“2-下拉列表框”时,组合框只有列表框的功能,即只能当作列表框来使用。组合框Style属性的默认值是“1-下拉组合框”时才具有文本框和列表框的功能。
11.一般把最常用的那个命令按钮设置为默认按钮,按回车键时默认按钮即被触发。
【答案】√
【分析】我们可以把最常用的那个命令按钮的Default属性设置为.T.,这样,当按回车键时默认按钮即被触发。
12.命令按钮组的事件代码在任何时候都可以作为其所包含控件同名事件的默认代码。
【答案】×
【分析】如果命令按钮组和其中命令按钮的Click事件中都含有代码,则单击该按钮时触发的是按钮的Click事件代码,而不是命令按钮组的Click事件代码。只有当按钮的Click事件中不包含代码时才触发按钮组的Click事件代码。设一个命令按钮组中有两个命令按钮(命令按钮1和命令按钮2),在按钮组的Click事件中包含了相关代码,而在按钮组的两个命令按钮中只有命令按钮1编写了Click事件代码。则当用户单击命令按钮1时,其Click事件代码被执行,而命令按钮组的Click事件不会被执行。若用户单击命令按钮2,由于命令按钮2的Click事件没有编写代码,则系统将执行命令按钮组的Click事件代码。这说明按钮组的事件代码可以作为默认事件代码。但这并不是说任何时候都可以作为其所包含控件同名事件的默认代码,这里我们可以看出,由于命令按钮1有Click事件代码,所以就不会执行命令按钮组的Click事件代码。
13.如果选项按钮组的Value属性值为1,则表示在选项按钮组中选中了第1个按钮。
【答案】√
【分析】是的,如果选项按钮组的Value属性值为2,则表示在选项按钮组中选中了第2个按钮,等等。
14.如果设置选项按钮组的ControlSource属性为表文件中的一个字符型字段,则将把用户选择按钮的Caption保存到表中。
【答案】√
【分析】如果把ControlSource设置为表中的一个字符型字段,则是将用户选择的按钮的标题Caption保存在该字段中;如果把ControlSource设置为表中的一个数值型字段,则是将选项按钮组的Value值保存在该字段中。
15.任何控件的Enabled属性设置为假后,都会呈现明显的淡灰色废止迹象。
【答案】√
16.当计时器控件的Interval属性为0时,计时器控件将不起作用。
【答案】√
17.计时器控件Enabled属性的默认值是.F.。
【答案】×
【分析】计时器控件Enabled属性的默认值是.T.。
18.设置表格的数据源要用RecordSourceType和RecordSource属性。
【答案】√
19.页框控件的ActivePage属性可以反应页框中活动页面的页码。
【答案】√
20.显示通用型字段的内容使用的是表单控件工具栏上的ActiveX绑定控件。
【答案】√
【分析】显示备注型字段的内容使用的是表单控件工具栏上的编辑框控件,而显示通用型字段的内容则选用ActiveX绑定控件。
6.2 选择题
1.放入表单中的标签,其Caption属性的默认值与下面的( )属性的默认值是一致的。
A.Value B.Name C.Alignment D.Height
【答案】B
【分析】标签Caption属性的默认值是Label1,而标签Name属性的默认值也是Label1。
2.决定表单上控件的位置的属性是( )。
A.Left和Top B.Alignment和Value C.WordWrap和Visible D.Width和Height
【答案】A
【分析】Left和Top确定控件左边与其父对象左边和顶边的距离,而Width和Height是控件本身的宽度和高度。
3.要使图像中的图片等比例填充,要设置的属性是( )。
A.Picture B.Stretch C.BackStyle D.AutoSize
【答案】B
【分析】图像的Stretch属性中有0-剪裁、1-等比填充、2-变比填充,选Stretch属性的1即可。
4.在一个表单中,如果想让其中的某个控件不可见,应该设置该控件的( )属性。
A.ReadOnly B.Enabled C.Visible D.Value
【答案】C
5.使形状(Shape)控件显示为三维的效果,应设置形状(Shape)的( )属性。
A.Curvature B.FillStyle C.BackStyle D.SpecialEffect
【答案】D
【分析】形状(Shape)控件的SpecialEffect属性中有0-3维、1-平面,选择0即可。
6.将文本框的PassWordChar属性值设置为星号(*),那么,当在文本框中输入“计算机”时,文本框中显示的是( )。
A.计算机 B.***C.******D.错误设置
【答案】C
7.对于文本框的Value属性,其可能的数据类型为( )。
A.数值型 B.字符型 C.日期型 D.都对
【答案】D
【分析】对于文本框的Value属性,其可能的数据类型为非M、非G型数据。
8.在表单的Init事件中,使表单中的Text1控件中显示“杭州”,应该设置( )。
A.Thisform.Text1.Caption="杭州" B.Text1.Value="杭州" C.This.Text1.Value="杭州" D.This.Value="杭州"
【答案】C
【分析】A错,因为文本框是没有Caption属性的;B错,因为不清楚Text1属于谁;D错,因为这里的This指表单,而表单是没有Value属性的。
9.下列各组控件中( )组可以用于数据的输入。
A.标签和图像控件 B.编辑框和文本框控件C.计时器和形状控件 D.命令按钮和页框控件
【答案】B
10.如果要为控件设置焦点,则控件的Enabled属性和( )属性必须为.T.。
A.Visible B.Cancel C.Default D.Buttons
【答案】A
11.若要使表单中的编辑框(Edit1)得到焦点,应使用命令( )。
A.This.Edit1.SetFocus=.T.B.Thisform.SetFocus C.Thisform.SetFocus(Edit1) D.Thisform.Edit1.SetFocus
【答案】D
【分析】A的调用语法不正确,SetFocus是方法,不是属性;B是使表单得到焦点,表单的SetFocus方法不存在;C的语法不正确。
12.决定选项按钮组中按钮个数的属性是( )。
A.ButtonCount B.Buttons C.Value D.ControlSource
【答案】A
【分析】ButtonCount是选项按钮组的记数属性。
13.下列方法程序中,不专属于列表框或组合框的是( )。
A.Refresh B.Clear C.RemoveItem D.AddItem
【答案】A
【分析】Refresh可以在许多对象的事件代码中调用。
14.对于不同的表单控件,其属性Value所表示的含义也有所不同。例如,选项按钮组中Value的含义是( )。
A.该选项组中单个选项按钮所包含的事件
B.用于指定选项组中哪个选项被选中
C.每个选项按钮的标题名称
D.选项组所包含的整个事件代码
【答案】B
15.要设置表格的数据源,需要使用( )属性。
A.ControlSource和Controls B.RecordSourceType和RecordSource C.RowSourceType和RowSource D.ListCount和List
【答案】B
16.ButtonCount是下面( )控件的属性。
A.文本框 B.命令按钮 C.选项按钮组 D.表单
【答案】C
17.假设当前表单中的页框共包括3个页面,则下列语句中,能正确设置第2个页标题为“第二页”的命令是( )
A.Thisform.PageFrame.Page (2).Caption="第二页"
B.Thisform.PageFrame.Pages (2).Caption="第二页"
C.Thisform.PageFrame1.Page (2).Caption="第二页"
D.Thisform.PageFrame1.Pages (2).Caption="第二页"
【答案】D
18.如果ColumnCount属性设置为-1,那么在运行时,表格将包含与其绑定的表中字段的列数是( )。
A.出错 B.0列 C.1列 D.表的实际列数
【答案】D
19.当把“职工.dbf”表文件中的“婚否”(逻辑型)字段拖入表单中时,该字段会自动与( )控件建立数据绑定。
A.复选框 B.编辑框 C.表格 D.文本框
【答案】A
20.表单中的常用事件有Click,Init,Destory,When,GotFocus,LostFocue,Valid,Load,Activate等,这些事件的常规触发顺序是( )。
A.Init,Click,Destory,When,GotFocus,LostFocue,Valid,Load,Activate
B.Load,Init,Activate,When,GotFocus,Click,Valid,LostFocus,Destory
C.Load,Init,When,GotFocus,Click,Valid,LostFocus,Activate,Destory
D.Init,Load,Activate,When,GotFocus,Click,Valid,LostFocus,Destory
【答案】B
6.3 程序填空题
说明:阅读下列程序,在标注的位置选择填空,即在提供的4个可选答案中,挑选一个正确的答案。
1.下面的表单实现以下功能:单击“开始”按钮,信息行从表单顶端开始向下移动,到达表单底边后又回到表单顶端,再继续下移。单击“停止”按钮,信息行则停止下移。设计界面和运行界面如图1-2和图1-3所示。表单的事件代码如下。
图1-2 下移信息表单设计界面
图1-3 下移信息表单运行界面
·Form1的Init事件代码
----(1)---- Thisform.Timer1.Interval=100
·“开始”按钮的Click事件代码
Thisform.Timer1.Enabled=.T. ----(2)----
·“停止”按钮的Click事件代码
Thisform.Timer1.Enabled=.F.
·Timer1的Timer事件代码
Thisform.Label1.Top=Thisform.Label1.Top+1 IF ----(3)---- Thisform.Label1.Top=0 ENDIF Thisform.Refresh
(1)A.Thisform.Timer1.Enabled=.T.B.Thisform.Timer1.Visible=.T.C.Thisform.Timer1.Visible=.F.D.Thisform.Timer1.Enabled=.F.
【答案】D
【分析】在没有按“开始”按钮时,标签是不能移动的,所以在表单的Init事件中应当先使计时器不工作,D符合要求;A正相反,计时器在表单运行后默认是不显示的;B,C不正确,因为计时器不需要设置,也不存在Visible属性。
(2)A.Thisform.Label1.Left=0 B.Thisform.Timer1.Top=0 C.Thisform.Label1.Top=0 D.Thisform.Timer1.Left=0
【答案】C
【分析】根据题目要求,单击“开始”按钮,信息行从表单顶端开始向下移动,所以开始移动时标签的初始位置在表单顶端,C是正确的;A是设置标签的初始位置在表单左边,不合题意;B,D错,因为不需要考虑计时器的位置,而且计时器是在“后台”运行的,不会显示其运行位置。
(3)A.Thisform.Label1.Top=Thisform.Height-Thisform.Label1.Height
B.Thisform.Label1.Left=Thisform.Height-Thisform.Label1.Height
C.Thisform.Label1.Top=Thisform.Width-Thisform.Label1.Width
D.This.Label1.Top=This.Height-This.Label1.Height
【答案】A
【分析】信息行向下移动就是使标签与顶端的距离不断加大,当信息行到达表单底边后又回到顶端,判断标签是否到达表单底边,也就是标签的TOP等于表单的高度减去标签自身的高度,所以A符合要求。
2.下面的表单实现显示指定表文件的字段名。运行界面如图1-4和图1-5所示。表单的事件代码如下。
图1-4 显示字段名表单运行界面1
图1-5 显示字段名表单运行界面2
·Combo1的Valid事件代码
FN=ALLTRIM(This.DisplayValue) IF FILE(FN) ----(1)---- Thisform.List1.Clear ----(2)---- FOR I=1 TO FCOUNT( ) ----(3)---- ENDFOR ELSE Thisform.List1.Visible=.F. Thisform.Label2.Visible=.F. MESSAGEBOX("文件不存在!",0+64,"文件判断") ENDIF This.SelectOnEntry=.T. Thisform.Refresh RETURN .T.
(1)A.Thisform.SetAll("Visible",.F.)
B.Thisform.SetAll("Visible",.T.)
C.This.SetAll("Visible",.T.)
D.Thisform.SetAll("Visible",.T.,"TextBox")
【答案】B
【分析】由于列表框的初始状态是不可见的,当输入表文件名正确后,需要使列表框变为可见,用来显示字段名,所以选择B。A是使表单的所有控件都不可见;C中的This是指组合框,也不正确;D设置的对象是文本框,不合要求。
(2)A.USE (FN.dbf) B.USE (FN) C.USE ("FN") D.USE ("FN.dbf")
【答案】B
【分析】当输入表文件名正确后,需要在列表框显示字段名,这需要首先打开表文件,因为文件名已经赋值给字符型变量FN,可使用命令USE(FN)或USE&FN打开数据表,所以B正确。其他写法不正确。
(3)A.Thisform.List1.AddItem(字段名)
B.Thisform.List1.RemoveItem (字段名)
C.Thisform.List1.AddItem(Field(I))
D.Thisform.List1.RemoveItem(Field(I))
【答案】C
【分析】将所打开表的字段名通过循环方式依次借助AddItem方法填写到列表框,C的写法是正确的。
3.下面表单实现计算指定部门的工资总额并填写在文本框里。设计界面和运行界面如图1-6和图1-7所示。表单的事件代码如下。
图1-6 指定部门工资总额设计界面
图1-7 指定部门工资总额运行界面
·Form1的Init事件代码
SET TALK OFF SET SAFETY OFF ----(1)---- INDEX ON 部门 TO BM UNIQUE SCAN Thisform.Combo1.AddItem(部门) ENDSCAN ----(2)----
·Combo1的InterActiveChange事件代码
SUM 基本工资 TO GZZE FOR ALLTRIM(Thisform.Combo1.DisplayValue)=ALLTRIM(部门) Thisform.Label2.Caption=ALLTRIM(Thisform.Combo1.DisplayValue)+"部基本 工资总额" ----(3)---- Thisform.Refresh
(1)A.Thisform.Combo1.RowSourceType=0
B.Thisform.Combo1.RowSourceType=1
C.Thisform.Combo1.RowSourceType=2
D.Thisform.Combo1.RowSourceType=6
【答案】A
【分析】由于组合框中的部门是借用AddItem方法添加的,其数据源的类型RowSourceType应置为0,所以A正确,而其他选项均不符合要求。
(2)A.Thisform.Refresh B.Thisform.Release C.CLEAR D.CLOSE INDEX
【答案】D
【分析】由于职工表中同一部门的职工有多人,为使每一部门只将一条记录添加到组合框,我们使用了UNIQUE唯一索引,但在接下来统计某部门职工工资总额时,如果仍然是每部门只有一条记录,统计结果就会出错,因此先要将索引关闭,确保表记录完整,D正确,而其他选项不符合要求。
(3)A.This.Text1.Value=GZZE B.Thisform.Text1.Value=GZZE C.Thisform.Combo1.Value=GZZE D.Thisform.Value=GZZE
【答案】B
【分析】要将统计汇总后的工资总额在文本框显示,可设置文本Text1的Value属性,正确的写法是B。A中的This是指组合框;C也是针对组合框;而D中表单是没有Value属性的。
4.下面表单实现时钟的显示,并且表单的背景色能随秒呈蓝、绿两色变动。表单背景的初始颜色为蓝色。设计界面和运行界面如图1-8和图1-9所示。表单的事件代码如下。
图1-8 时钟显示表单设计界面
图1-9 时钟显示表单运行界面
·Form1的Init事件代码
----(1)---- Thisform.Timer1.Interval=1000 Thisform.BackColor=RGB(0,0,255) Thisform.Text1.Value=Time( )
·Timer1的Timer事件代码
Thisform.Text1.Value=Time( ) ----(2)---- ----(3)---- Thisform.BackColor=RGB(0,0,255) ELSE Thisform.BackColor=RGB(0,255,0) ENDIF Thisform.Refresh
(1)A.Thisform.Value="信息框" B.Thisform.Clear C.Thisform.Text1.Caption="信息框" D.Thisform.Caption="信息框"
【答案】D
【分析】根据表单运行界面的要求,表单的标题运行时应该显示“信息框”,所以D正确,其他选项都不是针对表单的Caption设置的。
(2)A.M=VAL(Left(Time( ),2)) B.M=Right(Time( ),2)) C.M=VAL(Right(Time( ),2)) D.M=VAL(SubStr(Time( ),2))
【答案】C
【分析】因为题目要求表单的背景色能随秒呈蓝、绿两色变动,则应当先将时间中的秒值取出来,Time( )函数返回的时间是字符型数据,截取右字符串得到秒以后还要转换成数值型数据,所以C正确。
(3)A.IF M/2=0 B.IF M%2=0 C.IF MOD(M/2)=0 D.IF INT(M/2)=0
【答案】B
【分析】根据秒的值是偶数还是奇数来变换表单背景色,就是要判断秒M是否为偶数,即能否被2整除,正确的写法是B。
5.下面表单实现一个闪烁的指示灯,效果是:按下“开始”按钮,形状每隔1 s在方形和圆形之间切换,同时形状的颜色也在绿色和红色之间切换;按下“停止”按钮,结束上述动作。初始运行时为方形、绿色。设计界面和运行界面分别如图1-10、图1-11和图1-12所示。表单的事件代码如下。
图1-10 闪烁指示灯的设计界面
图1-11 闪烁指示灯的初始运行界面
图1-12 闪烁指示灯的开始后运行界面
·Form1的Init事件代码
This.Command1.Caption="开始" This.Command2.Caption="停止" This.Shape1.Curvature=0 This.Shape1.BackColor=RGB(0,255,0) ----(1)---- This.Timer1.Interval=1000
·“开始”按钮的Click事件代码
Thisform.Timer1.Enabled=.T.
·“停止”按钮的Click事件代码
Thisform.Timer1.Enabled=.F.
·Timer1的Timer事件代码
IF ----(2)---- Thisform.Shape1.Curvature=99 Thisform.Shape1.BackColor=RGB(255,0,0) ELSE Thisform.Shape1.Curvature=0 ----(3)---- ENDIF Thisform.Refresh
(1)A.This.Timer1.Enabled=.T.
B.This.Timer1.Enabled=.F.
C.Thisform.Text1.Caption="闪烁的指示灯"
D.Thisform.Caption="闪烁的指示灯"
【答案】B
【分析】计时器的Enabled属性默认情况下为.T.,如果没有按下“开始”按钮时要求计时器不工作,则应设计时器的Enabled属性为.F.,所以B正确。根据设计界面的提示,表单的标题是在设计时通过属性窗口设置的,所以不需要在初始事件代码中编写。
(2)A.This.Shape1.Curvature=0
B.M%2=0
C.Thisform.Shape1.Curvature=99
D.Thisform.Shape1.Curvature=0
【答案】D
【分析】如果形状Shape1原来是直角,下次时间到就变为圆,判断形状是否为直角就是测试其Curvature属性是否为0,所以选择D。
(3)A.This.Shape1.BackColor=RGB(0,255,0)
B.Thisform.Shape1.BackColor=RGB(255,0,0)
C.Thisform.Shape1.BackColor=RGB(0,255,0)
D.Thisform.Shape1.ForeColor=RGB(0,255,0)
【答案】C
【分析】如果形状不是直角,下次时间到就将其Curvature属性置为0(直角),同时,形状的背景色置为绿色,因此选择C。