记得以前有朋友想让他的vfp程序运行时是这个样子:没有VFP的主屏幕(_screen),运行时直接在桌面出现一个登录对话框,输入用户名及密码并验证通过之后出现软件的主界面,看起来象是用VB编写的软件,有种很酷的感觉。
VFP软件主界面的实现通常可以采用两种方式:主屏幕(_screen)或顶层表单(或者叫父子表单)。可以用顶层表单来实现上述的想法。
VFP中设置顶层表单的方法是将表单的showWindow属性设置为“2-作为顶层表单”,这也就是所谓的“父表单”了;与之想对应的,需要将“子表单”的showWindow属性设置为“1-在顶层表单中”。本文是一个关于顶层表单的小实例,算是一个“热身”吧。以后会给出用顶层表单实现软件主界面的例子,当然也会相继给出用主屏幕(_screen)实现软件主界面的例子。
本例使用数据库“数据1”中的“网站信息表”作为表单数据环境的数据源,关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出。运行此例时首先启动“父表单.scx”,该表单上会显示“网站信息表”的第一条记录,如下图一;
图一
单击父表单上的“启动子表单”按钮后,子表单启动的同时该命令按钮被禁用(关闭子表单后该命令按钮被自动激活);子表单启动后,单击其上的“第一条”、“下一条”等命令按钮后,父表单会更新显示在“网站信息表”中所对应的记录,用鼠标指向子表单的标题栏可以移动子表单,但其移动的范围在父表单窗口之内,如下图2:
图二
本例制作步骤如下:
一、新建表单form1,按下表设置其属性,并将其保存为“父表单.scx”:
属性名 | 属性值 |
caption | 父表单 |
AutoCenter | .T. |
width | 375 |
height | 130 |
showWindow | 2-作为顶层表单 |
二、向父表单中添加一个命令按钮command1,将其caption属性值设置为“启动子表单”,适当调整大小;然后再添加一个标签(Label)控件,并按下表设置该标签的属性:
属性名 | 属性值 |
caption | 父子表单关系 |
AutoSize | .T. |
FontBold | .T. |
FontSize | 16 |
ForeColor | 0,0,255 |
三、右击父表单空白处选“数据环境”命令,将“网站信息表”添加到数据环境中去。在“数据环境设计器”中拖动“网站信息表”的各个字段名到父表单上去(注意:此例不要拖动标题栏,否则生成的是一个表格),适当调整所生成的控件的大小及父表单内各个控件的位置,调整后的表单如下图:
四、为父表单及其所包含的控件添加事件代码:
(1)父表单的Unload事件:close data
(2)命令按钮command1的click事件代码:
this.enabled=.f.
do form 子表单
五、设置完父表单后,将父表单.scx关闭,然后再新建一个表单,按下表设置其属性,并将其保存为“子表单.scx”:
属性名 | 属性值 |
caption | 子表单 |
showWindow | 1-在顶层表单中 |
六、向子表单中添加四个命令按钮command1~command4及一个微调按钮(Spinner)控件,将四个命令按钮的caption属性依次设置为“第一条”、“上一条”、“下一条”和“最后一条”,然后将四个按钮及Spinner控件排成一线,将子表单的宽度及高度调小一些,这样看起来象个工具栏的样子,如下图:
七、按下表设置微调按钮Spinner1的属性:
属性名 | 属性值 |
SpinnerHighValue | =reccount() |
SpinnerLowValue | 1.00 |
八、为子表单及其所包含的控件添加事件代码:
(1)子表单的QueryUnload事件:
父表单.command1.enabled=.t. &&作用是在子表单被关闭时激活父表单上的“启动子表单”按钮
(2)“第一条”按钮(command1)的click事件:
if bof()=.f. go top endif 父表单.refresh
(3)“上一条”按钮(command2)的click事件:
if bof()=.f. skip -1 endif 父表单.refresh
(4)“下一条”按钮(command3)的click事件:
if eof()=.f. skip endif 父表单.refresh
(5)“最后一条”按钮(command4)的click事件:
if eof()=.f. go bottom endif 父表单.refresh
(6)微调按钮Spinner1的InteractiveChange事件代码:
s=this.value
goto s
父表单.refresh
九、运行“父表单.scx”,即可得到本例的效果。
本例代码在Win2003+VFP6.0环境下调试通过。
查看全套“菜鸟也学VFP”教程
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索spinner
, 控件
, 表单
, 按钮
, 命令
, 事件
, 属性
, 子控件单击
, 父控件
, 表单数据
, mysqlnode.js表单数据库
, 表单数据库
, 表单jqueryclass
jsjavascriptweb表单
,以便于您获取更多的相关知识。