第 9章 表单集与多重表单第 9章 表单集与多重表单
9.1 表单集
9.2 多重表单第 9章 表单集与多重表单
9.1 表单集在 Visual FoxPro 6.0中,可以把一系列相关内容加入表单集,从而扩展用户界面。一个表单集包含多个表单,可以把这些表单作为一个组进行操作,从而同时显示或隐藏表单集中的全部表单,并可以可视化地排列多个表单的位置。
第 9章 表单集与多重表单
9.1.1 创建表单集
1,创建表单集创建表单集是在,表单设计器,中进行的 。 具体步骤是:
(1) 单击,新建,按钮,在,新建,对话框中,选中
,表单,选项,单击,新建文件,按钮,进入,表单设计器,。
(2) 在主菜单中,单击,表单,菜单中的,创建表单集,命令,即可创建一个新的表单集 FormSet1。
表单集是一个包含有一个或多个表单的父层次的容器,
该容器不可见 。
创建表单集以后,该表单集包含原有的一个表单,可第 9章 表单集与多重表单
2,向表单集中添加新表单如果需要向表单集中添加新的表单,可以单击,表单,菜单中的,添加新表单,命令 。
表单以,表,的格式存储在,scx后缀的文件中 。 创建表单时,,scx表包含了一个表单的记录,一个数据环境的记录和两个内部使用记录 。 为每个添加到表单或数据环境中的对象添加一个记录 。 如果创建了表单集,则为表单集及每个新表单添加一个附加的记录 。
每个表单的父容器为表单集,每个控件的父容器为其所在的表单。
第 9章 表单集与多重表单
3,从表单集中删除表单如果需要从表单集中删除表单,步骤为:
(1) 在,属性,窗口的对象列表框中,选定要删除的表单 ( 假如要删除 Form2),如图 9.3所示 。
(2) 单击,表单,菜单中的,移除表单,命令 。
(3) 在弹出的删除确认对话框中,选择,是,按钮,
表单即被删除 。
从,属性,窗口中,可以看到原来的 Form2表单没有了 。
如果表单集中只有一个表单,则无法删除表单,只可删除表单集而只剩下单个的表单。
第 9章 表单集与多重表单
4,删除表单集如果需要删除表单集,在“表单”菜单中,单击
“移除表单集”命令。
9.1.2 表单集的应用示例第 9章 表单集与多重表单
9.2 多重表单在表单集中的表单,其“地位”是平等的,不存在主次和上下级关系。多重表单是指具有主从关系的表单,
由“主”表单(或称父表单)调用“子”表单,这里
“主”、“子”表单处于不同的层次。
第 9章 表单集与多重表单
9.2.1 表单的类型
Visual FoxPro允许创建 3种类型的表单,即子表单,
浮动表单和顶层表单 。
1,子表单子表单包含在另一个窗口中,用于创建 MDI(多文档界面)应用程序的表单。子表单不可移至父表单(主表单)边界之外,当其最小化时将显示在父表单的底部。
若父表单最小化,则子表单也一同最小化。
第 9章 表单集与多重表单
2,浮动表单浮动表单属于父表单(主表单)的一部分,但并不是包含在父表单中。而且,浮动表单可以被移至屏幕的任何位置,但不能在父表单后台移动。若将浮动表单最小化时,它将显示在桌面的底部。若父表单最小化,则浮动表单也一同最小化。浮动表单也可用于创建 MDI应用程序。
第 9章 表单集与多重表单
3,顶层表单顶层表单是没有父表单的独立表单,用于创建一个 SDI(单文档界面)应用程序,或用作 MDI应用程序中其他子表单的父表单。顶层表单与其他 Windows应用程序同级,可出现在其前台或后台,并且显示在
Windows任务栏中。
第 9章 表单集与多重表单
9.2.2 多重表单的创建及其有关属性
1,多重表单的有关属性表 9-2 与多重表单有关的表单属性名 称 功 能
AlwaysO
nTop 控制表单是否总是位于其他打开窗口的顶部
Desktop 控制表单是否总是在“桌面”窗口(可以浮动于其他窗 口)
ShowWin
dow 控制表单是在 VFP主窗口中、顶层表单中,还是顶层表单第 9章 表单集与多重表单
2,子表单如果要创建子表单,不仅需要指定它应在另外一个表单中显示,而且还需指定是否是 MDI类的子表单,
即指出表单最大化时是如何工作的 。
如果子表单是 MDI类的,它将包含在父表单中,
并共享父表单的标题栏、标题、菜单以及工具栏;非
MDI类的子表单最大化时,将占据父表单的全部用户区域,但仍保留它本身的标题和标题栏。
第 9章 表单集与多重表单创建子表单的步骤如下:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow属性:
0 — 在屏幕中 ( 默认 ) 。 子表单的父表单是
Visual FoxPro主窗口 。
1 — 在顶层表单中 。 当子窗口显示时,子表单的父表单是活动的顶层表单 。
第 9章 表单集与多重表单
(3) 设置表单的 MDIForm属性:
MDIForm属性值为,真,(.T.):子表单最大化时与父表单组合成一体 。
MDIForm属性值为“假” (.F.):子表单最大化时仍保留为一独立的窗口。
第 9章 表单集与多重表单
3,浮动表单浮动表单是由子表单变化而来,建立浮动表单的步骤如下:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow属性:
0 — 在屏幕中 ( 默认 ) 。 浮动表单的父表单将出现在 Visual FoxPro主窗口 。
1 — 在顶层表单中 。 当浮动窗口显示时,浮动表单的父表单将是活动的顶层表单 。
(3) 设置表单的 Desktop属性为“真” (.T.)。
第 9章 表单集与多重表单
4,顶层表单建立顶层表单的步骤:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow 属性为,2 — 作为顶层表单”。
第 9章 表单集与多重表单
5,子表单的显示如果需在某表单中显示该子表单,只需在顶层表单的事件代码中包含 DO FORM命令,指定要显示的子表单的名称 。
例如,在顶层表单中建立一个按钮,然后在按钮的
Click事件代码中包含如下的命令:
DO FORM MyChild
然后,激活顶层表单,如有必要,触发用以显示子表单的事件。
第 9章 表单集与多重表单
9.2.3 主表单、从表单之间的参数传递主表单在调用子表单时,通过 DO命令可以实现主从表单之间的参数传递 。
1,主表单接受子表单的返回值当主表单要接受从子表单返回的值时,需使用下面的命令:
DO FORM 〈 子表单名 〉 TO 〈 内存变量 〉
说明:从子表单返回的值存放于 〈 内存变量 〉 中,
在主表单中可以被使用。
第 9章 表单集与多重表单
2,主表单向子表单传递数据如果主表单需要向子表单传递数据,可以使用下面的命令:
DO FORM 〈 表单文件名 〉 WITH 〈 实参表列 〉
说明:在子表单的 Init事件代码中应该有如下代码来接受数据:
PARAMETERS 〈 形参表列 〉
〈 实参表列 〉 与 〈 形参表列 〉 中的参数应用逗号分隔,
〈 形参表列 〉 中的参数数目不能少于 〈 实参表列 〉 中的参数数目。多余的参数变量将初始化为,.F,— 假。
第 9章 表单集与多重表单
3,主表单与子表单相互传递数据主表单与子表单之间的数据传递,使用下面的命令:
DO FORM 〈 表单文件名 〉 WITH 〈 实参表列 〉
TO 〈 内存变量 〉
9.2.4 多重表单示例第 9章 表单集与多重表单
9.2.5 隐藏 Visual FoxPro主窗口
1,利用 Visible属性使用应用程序对象的 Visible属性,按要求隐藏或显示 Visual FoxPro主窗口 。
(1) 在表单的 Init事件中,包含下列代码行:
Application.Visible =,F.
(2) 在表单的 Destroy事件中,包含下列代码行:
Application.Visible =,T,
第 9章 表单集与多重表单
2,使用配置文件在配置文件中包含以下行,可以隐藏 Visual
FoxPro主窗口:
SCREEN = OFF
说明:有关配置文件的内容可以参见联机帮助。
9.1 表单集
9.2 多重表单第 9章 表单集与多重表单
9.1 表单集在 Visual FoxPro 6.0中,可以把一系列相关内容加入表单集,从而扩展用户界面。一个表单集包含多个表单,可以把这些表单作为一个组进行操作,从而同时显示或隐藏表单集中的全部表单,并可以可视化地排列多个表单的位置。
第 9章 表单集与多重表单
9.1.1 创建表单集
1,创建表单集创建表单集是在,表单设计器,中进行的 。 具体步骤是:
(1) 单击,新建,按钮,在,新建,对话框中,选中
,表单,选项,单击,新建文件,按钮,进入,表单设计器,。
(2) 在主菜单中,单击,表单,菜单中的,创建表单集,命令,即可创建一个新的表单集 FormSet1。
表单集是一个包含有一个或多个表单的父层次的容器,
该容器不可见 。
创建表单集以后,该表单集包含原有的一个表单,可第 9章 表单集与多重表单
2,向表单集中添加新表单如果需要向表单集中添加新的表单,可以单击,表单,菜单中的,添加新表单,命令 。
表单以,表,的格式存储在,scx后缀的文件中 。 创建表单时,,scx表包含了一个表单的记录,一个数据环境的记录和两个内部使用记录 。 为每个添加到表单或数据环境中的对象添加一个记录 。 如果创建了表单集,则为表单集及每个新表单添加一个附加的记录 。
每个表单的父容器为表单集,每个控件的父容器为其所在的表单。
第 9章 表单集与多重表单
3,从表单集中删除表单如果需要从表单集中删除表单,步骤为:
(1) 在,属性,窗口的对象列表框中,选定要删除的表单 ( 假如要删除 Form2),如图 9.3所示 。
(2) 单击,表单,菜单中的,移除表单,命令 。
(3) 在弹出的删除确认对话框中,选择,是,按钮,
表单即被删除 。
从,属性,窗口中,可以看到原来的 Form2表单没有了 。
如果表单集中只有一个表单,则无法删除表单,只可删除表单集而只剩下单个的表单。
第 9章 表单集与多重表单
4,删除表单集如果需要删除表单集,在“表单”菜单中,单击
“移除表单集”命令。
9.1.2 表单集的应用示例第 9章 表单集与多重表单
9.2 多重表单在表单集中的表单,其“地位”是平等的,不存在主次和上下级关系。多重表单是指具有主从关系的表单,
由“主”表单(或称父表单)调用“子”表单,这里
“主”、“子”表单处于不同的层次。
第 9章 表单集与多重表单
9.2.1 表单的类型
Visual FoxPro允许创建 3种类型的表单,即子表单,
浮动表单和顶层表单 。
1,子表单子表单包含在另一个窗口中,用于创建 MDI(多文档界面)应用程序的表单。子表单不可移至父表单(主表单)边界之外,当其最小化时将显示在父表单的底部。
若父表单最小化,则子表单也一同最小化。
第 9章 表单集与多重表单
2,浮动表单浮动表单属于父表单(主表单)的一部分,但并不是包含在父表单中。而且,浮动表单可以被移至屏幕的任何位置,但不能在父表单后台移动。若将浮动表单最小化时,它将显示在桌面的底部。若父表单最小化,则浮动表单也一同最小化。浮动表单也可用于创建 MDI应用程序。
第 9章 表单集与多重表单
3,顶层表单顶层表单是没有父表单的独立表单,用于创建一个 SDI(单文档界面)应用程序,或用作 MDI应用程序中其他子表单的父表单。顶层表单与其他 Windows应用程序同级,可出现在其前台或后台,并且显示在
Windows任务栏中。
第 9章 表单集与多重表单
9.2.2 多重表单的创建及其有关属性
1,多重表单的有关属性表 9-2 与多重表单有关的表单属性名 称 功 能
AlwaysO
nTop 控制表单是否总是位于其他打开窗口的顶部
Desktop 控制表单是否总是在“桌面”窗口(可以浮动于其他窗 口)
ShowWin
dow 控制表单是在 VFP主窗口中、顶层表单中,还是顶层表单第 9章 表单集与多重表单
2,子表单如果要创建子表单,不仅需要指定它应在另外一个表单中显示,而且还需指定是否是 MDI类的子表单,
即指出表单最大化时是如何工作的 。
如果子表单是 MDI类的,它将包含在父表单中,
并共享父表单的标题栏、标题、菜单以及工具栏;非
MDI类的子表单最大化时,将占据父表单的全部用户区域,但仍保留它本身的标题和标题栏。
第 9章 表单集与多重表单创建子表单的步骤如下:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow属性:
0 — 在屏幕中 ( 默认 ) 。 子表单的父表单是
Visual FoxPro主窗口 。
1 — 在顶层表单中 。 当子窗口显示时,子表单的父表单是活动的顶层表单 。
第 9章 表单集与多重表单
(3) 设置表单的 MDIForm属性:
MDIForm属性值为,真,(.T.):子表单最大化时与父表单组合成一体 。
MDIForm属性值为“假” (.F.):子表单最大化时仍保留为一独立的窗口。
第 9章 表单集与多重表单
3,浮动表单浮动表单是由子表单变化而来,建立浮动表单的步骤如下:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow属性:
0 — 在屏幕中 ( 默认 ) 。 浮动表单的父表单将出现在 Visual FoxPro主窗口 。
1 — 在顶层表单中 。 当浮动窗口显示时,浮动表单的父表单将是活动的顶层表单 。
(3) 设置表单的 Desktop属性为“真” (.T.)。
第 9章 表单集与多重表单
4,顶层表单建立顶层表单的步骤:
(1) 在,表单设计器,中创建或编辑表单 。
(2) 设置表单的 ShowWindow 属性为,2 — 作为顶层表单”。
第 9章 表单集与多重表单
5,子表单的显示如果需在某表单中显示该子表单,只需在顶层表单的事件代码中包含 DO FORM命令,指定要显示的子表单的名称 。
例如,在顶层表单中建立一个按钮,然后在按钮的
Click事件代码中包含如下的命令:
DO FORM MyChild
然后,激活顶层表单,如有必要,触发用以显示子表单的事件。
第 9章 表单集与多重表单
9.2.3 主表单、从表单之间的参数传递主表单在调用子表单时,通过 DO命令可以实现主从表单之间的参数传递 。
1,主表单接受子表单的返回值当主表单要接受从子表单返回的值时,需使用下面的命令:
DO FORM 〈 子表单名 〉 TO 〈 内存变量 〉
说明:从子表单返回的值存放于 〈 内存变量 〉 中,
在主表单中可以被使用。
第 9章 表单集与多重表单
2,主表单向子表单传递数据如果主表单需要向子表单传递数据,可以使用下面的命令:
DO FORM 〈 表单文件名 〉 WITH 〈 实参表列 〉
说明:在子表单的 Init事件代码中应该有如下代码来接受数据:
PARAMETERS 〈 形参表列 〉
〈 实参表列 〉 与 〈 形参表列 〉 中的参数应用逗号分隔,
〈 形参表列 〉 中的参数数目不能少于 〈 实参表列 〉 中的参数数目。多余的参数变量将初始化为,.F,— 假。
第 9章 表单集与多重表单
3,主表单与子表单相互传递数据主表单与子表单之间的数据传递,使用下面的命令:
DO FORM 〈 表单文件名 〉 WITH 〈 实参表列 〉
TO 〈 内存变量 〉
9.2.4 多重表单示例第 9章 表单集与多重表单
9.2.5 隐藏 Visual FoxPro主窗口
1,利用 Visible属性使用应用程序对象的 Visible属性,按要求隐藏或显示 Visual FoxPro主窗口 。
(1) 在表单的 Init事件中,包含下列代码行:
Application.Visible =,F.
(2) 在表单的 Destroy事件中,包含下列代码行:
Application.Visible =,T,
第 9章 表单集与多重表单
2,使用配置文件在配置文件中包含以下行,可以隐藏 Visual
FoxPro主窗口:
SCREEN = OFF
说明:有关配置文件的内容可以参见联机帮助。