线条、形状和容器都有助于用可视方式将表单中的组件归纳成组,这样可以将相关项联系起来帮助学习和了解界面,更易于使用应用程序。
线条控件(Line) 可以在表单上绘制“\”或“/”的对角线条。表8-22所列为设计时常用的线条属性。
表8-22 线条的常用属性
属性名称 |
功 能 |
取 值 |
Curvature |
指定形状控件的角的曲率 |
0表示无曲率(矩形或正方形); 1~98表示指定圆角;99表示最大曲率(圆或椭圆) |
BorderStyle |
指定线条的线型 |
0(默认值)表示计时器不响应Timer()事件; 1~n |
FillStyle |
指定用来填充形状的图案 |
|
SpecialEffect |
指定形状的外观 |
0表示三维;1表示平面(默认值) |
形状控件(Shape)可以在表单上添加矩形、圆或椭圆的形状。形状控件与线条控件的功能一样,用于对表单中的控件进行分组,同时美化表单界面的设计。另外,形状控件在表单上显示的图形也是不能直接修改的。
表8-23所列为设计时常用的形状属性。
表8-23 形状的常用属性
属性名称 |
功 能 |
取 值 |
Curvature |
指定形状控件的角的曲率 |
0表示无曲率(矩形或正方形); 1~98表示指定圆角; 99表示最大曲率(圆或椭圆) |
BorderStyle |
指定线条的线型。 |
0(默认值)表示计时器不响应Timer()事件; 1~n |
FillStyle |
指定用来填充形状的图案 |
|
SpecialEffect |
指定形状的外观 |
0表示三维; 1表示平面(默认值) |
除了设计时在表单上直接绘出线条和形状外,还可以在程序中使用表单的绘图方法进行实际绘图。
如表8-24所列为可在表单中进行绘图的方法程序。
表8-24 表单绘图方法
方法程序 |
说 明 |
Circle |
在表单上画一个圆形或弧 |
Cls |
清除表单中的图形和文本 |
Line |
在表单中画线 |
Pset |
将表单中的某一点设置为指定颜色 |
|
在表单中打印一个字符串 |
容器控件(Container)可以在表单上绘制一个矩形框,并且可以在该容器内添加其他的控件。表8-25所列为设计时常用的容器属性。
表8-25 容器的常用属性
属 性 |
说 明 |
BackStyle |
指定对象的背景是否透明 |
MousePointer |
运行时,鼠标位于一个对象特定部分上时鼠标指针的形状 |
SpecalEffect |
指定控件的不同格式选项 |
超级链接控件(HyperLink)用来帮助在表单上创建一个热键,它能够链接到目录网址上,以便快速访问。超级链接控件的NavigateTo方法允许用户指定一个URL地址,当执行该方法后,Visual FoxPro就会自动启动IE浏览器来打开指定的URL网页内容。
【例8-12】 在表单中添加一个容器,并在容器的左边添加一个形状,通过下边的微调可以调整形状的角度半径;右边为线条,可以改变宽度及格式等,其运行如图8-59和图8-60所示。
图8-59 表单运行界面1 图8-60 表单运行界面2
其具体操作步骤如下:
(1)新建表单,添加相应的控件,并按如图8-61所示进行摆放。
图8-61 添加的控件
(2)设置容器控件Container1的属性。
· BackStyle:1(不透明)。
· BorderWidth:3(边框宽度)。
· SpecialEffect:0(凸起)。
(3)设置形状控件Shape1的属性。
· BorderColor:128,0,128(紫色)。
· BackStyle:1(不透明)。
(4)设置微调控件Spinner1的属性。
· KeyBoardHighValue:10.00。
· KeyBoardLowValue:1.00。
· SpinnerHighValue:10.00。
· SpinnerLowValue:1.00。
(5)设置微调控件Spinner2的属性。
· SpinnerHighValue:99.00。
· SpinnerLowValue:0.00。
(6)设置组合框控件Combo1的属性。
· RowSourceType=1(值)。
· RowSource="0,1,2,3,4,5"。
(7)设置选项组控件Optiongroup1的属性。
· Option1.Caption:凸起。
· Option2.Caption:凹下。
· Option3.Caption:平面。
(8)设置复选框Check1的属性。
Caption:透明。
(9)编写表单的Init事件代码。
Thisform.container1.specialeffect=0
Thisform.container1.backstyle=0
(10)编写选项组Optiongroup1的InteractiveChange事件代码。
Do case
case this.value=1
thisform. Container1.specialeffect=0
case this.value=2
thisform. Container1.specialeffect=1
Case this.value=3
thisform. Container1.specialeffect=2
Endcase
(11)编写复选框Check1的InteractiveChange事件代码。
If this.value=1
thisform. Shape1.backstyle=1
Else
Thisform. Shape1.backstyle=0
Endif
(12)编写微调Spinner1的UpClick和DownClick事件代码。
Thisform.line1.borderWidth=this.value
(13)编写微调Spinner2的InteractiveChange事件代码。
Thisform.shape1.curvature=this.value
(14)编写组合框Combo1的InteractiveChange事件代码。
Thisform.line1.borderstyle=val(thisform.combo1.value)
(15)编写按钮Command1的Click的事件代码。
thisform.hyperlink1.navigateto("Http://www.163.com")
(16)保存表单为“例8-12”并运行,其运行界面如图8-59和图8-60所示。