获取当前页框中被选中页的标题
LOCAL cP
cP = thisform.pageframe1.Pages(thisform.pageframe1.ActivePage).Caption
MESSAGEBOX(cP)
页框(pageframe) 也是vfp的一个基本控件,使用它可以制作出类似于windows对话框的效果,关于这个控件的常用属性和方法请参考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
this.MaxButton=.f. &&屏蔽表单的最大化按钮
this.MinButton=.f. &&屏蔽表单的最小化按钮
this.pageframe1.activepage=2 &&指定第二页为当前页
set exact on
use 网站信息表
this.pageframe1.page1bo1.value="编号"
with this.id1
    .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=150
endwith
with this.id1
    .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=150
endwith
this.id1.Setall("DynamicBackColor","RGB(224,225,255)","Column")
this.id1.Setall("DynamicBackColor","RGB(224,225,255)","Column")
(二)表单的unload事件代码:
close all
set exact off
(三)page1(“查记录”)中各对象的事件代码:
1、page1的Activate事件代码:
fresh
2、“查”按钮command1的click事件代码:
if empty(thisform.pageframe1.page1.Text1.value)=.f.
go top
a=thisform.pageframe1.page1.Combo1.value
b=alltrim(thisform.pageframe1.page1.Text1.value)
  if a="编号"
    locate for 编号=b
    if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
    else
        go recno()
    endif
  endif
  if a="网站名称"
    locate for 网站名称=b
    if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
    else
        go recno()
    endif
  endif
  if a="网站网址"
    locate for 网站网址=b
    if eof()
        messagebox("数据库中不存在您所要查询的记录",16,"系统提示")
    else
        go recno()
    endif
  endif
  thisform.id1.setfocus
else
  messagebox("请输入要查的内容!",16,"系统提示")
  thisform.pageframe1.page1.Text1.value=""
  thisform.pageframe1.page1.Text1.Setfocus
endif
return3、“恢复”按钮command2的click事件代码:
go top
thisform.pageframe1.page1.Text1.value=""
thisform.pageframe1.page1.Text1.Setfocus
with thisform.id1
    .width=290
    .height=100
    .left=0
    .top=0
    .recordsource="网站信息表"
    .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=150
endwith
thisform.id1.Setall("DynamicBackColor","RGB(224,225,255)","Column")
thisform.fresh(四)page2(“添加记录”)中各对象的事件代码:
1、page2的Activate事件代码:
fresh
2、“添加”按钮command1的click事件代码:
a=alltrim(thisform.pageframe1.page2.Text1.value)
b=alltrim(thisform.pageframe1.page2.Text2.value)
c=alltrim(thisform.pageframe1.page2.Text3.value)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。