页框(pageframe) 也是vfp的一个基本控件,使用它可以制作出类似于windows对话框的效果,关于这个控件的常用属性和方法请参考vfp基础教程-页框和页一文,
VFP:页框控件的使用
。页框控件本身是一个容器,其中可以包含若干个页(page);而页也是容器,可以在其中添加各种对象,因此无论是在设计时添加对象或者是代码引用,都要比别的控件麻烦些。在使用这个控件时需要注意:如果设计时要向某个页中添加对象,一定要在页框的编辑状态下选中该页的标签,然后再向该页中添加控件;另外在不同页之间切换时,需要处理好数据源的问题。
刚接触这个控件的同志可能经常会碰到这样一个问题:即使在页框中只设定了两页,这两页的标题宽度也会平均分配并且占满整个页框的宽度;而在标准windows对话框中,无论有多少页,页面标题都是左对齐排列的,如下图:
这个问题很好解决,把页框的TabStyle属性值设为“1-非两端”就可以出来这种左对齐的效果。
本文来设计一个页框控件的应用实例,在本例中通过页框控件的两个页实现了看实例学VFP:对表中记录进行定位与查找操作和看实例学VFP:向数据表中添加记录并验证输入数据是否合法这两个例子的功能,运行时如下图:
制作步骤如下:
一、新建表单,将其caption属性值设置为“编程入门网-页框控件”,AutoCenter属性值设置为.t.,保存为“表单1.scx”。
二、向表单上添加一个页框控件pageframe1,将其pagecount属性值设为2,TabStyle属性值设为“1-非两端”。
三、右击页框控件选“编辑”命令,在页框的编辑状态下选中page1,将其caption属性值设置为“查找记录”,按照看实例学VFP:对表中记录进行定位与查找操作一文向page1添加相同的控件并为各个控件设置相同的属性。
四、在页框的编辑状态下选中page2,将其caption属性值设置为“添加记录”,按照看实例学VFP:向数据表中添加记录并验证输入数据是否合法一文向page2添加相同的控件并为各个控件设置相同的属性。
五、设置完毕后的表单设计器如下图:
六、添加事件代码:
(一)表单的init事件代码:
&& coded by www.bianceng.cnthis.MaxButton=.f. &&屏蔽表单的最大化按钮this.MinButton=.f. &&屏蔽表单的最小化按钮this.pageframe1.activepage=2 &&指定第二页为当前页set exact onuse 网站信息表this.pageframe1.page1.combo1.value="编号"with this.pageframe1.page1.grid1 .width=290 .height=100 .left=0 .top=0 .recordsource="网站信息表" .deletemark=.f. .visible=.t. .readonly=.t. .ColumnCount=3 .Column1.Header1.Caption="编号" .Column1.Header1.BackColor=RGB(255,255,190) .Column2.Header1.BackColor=RGB(255,255,190) .Column2.Header1.Caption="网站名称" .Column3.Header1.BackColor=RGB(255,255,190) .Column3.Header1.Caption="网站网址" .Column1.width=75 .Column2.width=80 .Column3.width=150endwithwith this.pageframe1.page2.grid1 .width=290 .height=100 .left=0 .top=0 .recordsource="网站信息表" .deletemark=.f. .visible=.t. .readonly=.t. .ColumnCount=3 .Column1.Header1.Caption="编号" .Column1.Header1.BackColor=RGB(255,255,190) .Column2.Header1.BackColor=RGB(255,255,190) .Column2.Header1.Caption="网站名称" .Column3.Header1.BackColor=RGB(255,255,190) .Column3.Header1.Caption="网站网址" .Column1.width=75 .Column2.width=80 .Column3.width=150endwiththis.pageframe1.page1.grid1.Setall("DynamicBackColor","RGB(224,225,255)","Column")this.pageframe1.page2.grid1.Setall("DynamicBackColor","RGB(224,225,255)","Column")