vfp 上层表单ENABLED设置问题

在VFP设计环境中,运行通过!比如在表单1中的:thisform.endbled=.f.DOFORM表单2在表单2的UNLOAD中:表单1.enabled=.t.编译EX... 在VFP设计环境中,运行通过!比如在表单1中的:
thisform.endbled=.f.
DO FORM 表单2

在表单2的UNLOAD中:
表单1.enabled=.t.

编译EXE后运行出错:找不到对象表单1
不编译在VFP中运行正常!
展开
 我来答
燃烧生命0209
2013-09-09 · TA获得超过285个赞
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:250万
展开全部
表单1的启动应加参数:do form 表单1 NAME VarName [LINKED],然后再引用变量,请参照如下内容:

运行一个用表单设计器创建的、编译过的表单或表单集。
DO FORM FormName | ? [NAME VarName [LINKED]] [WITH cParameterList]
[TO VarName] [NOREAD] [NOSHOW]

参数
FormName指定要运行的表单或表单集的名称。
? 
显示运行(Do)对话框,从中选择要运行的表单或表单集。

NAME VarName
[LINKED]
指定一个用来引用表单或表单集的内存变量或数组元素。如果指定的内存变量不存在,Microsoft Visual FoxPro
将自动创建它。如果指定一个数组元素,则在执行 DO FORM 之前,该数组必须存在。如果指定的内存变量或数组元素已经存在,则改写原有内容。如果省略 NAME
子句,则 Visual FoxPro 创建一个与表单或表单集文件同名的对象型内存变量。包含 LINKED
可用来连接表单到相关联的内存变量,当变量超出作用域时释放表单。如果没有包含 LINKED,即使没有与表单相关联的内存变量,表单仍可以是活动的。

WITH
cParameterList
指定传递到表单或表单集的参数。运行表单集时,如果表单集的 WindowType 属性设置为 无模式(0) 或 模式(1),参数就传递给表单集的 Init
方法。如果表单集的 WindowType 属性设置为 读(2) 或 读模式(3) ,参数就传递给 Load 方法。

TO VarName
指定存放表单返回值的变量。如果变量不存在,Visual FoxPro 自动创建它。可在表单的 Unload 事件过程中使用 RETURN
命令来指定返回值。如果不包含返回值,则返回默认值真(.T.)。如果要使用 TO,表单的 WindowType 属性必须设置为1 (模式)。如果表单的 Init
事件过程返回了.F.,则防止开始表单实例,Unload 事件过程将不返回值到 VarName。

NOREAD
指定创建并显示表单集,但在执行 READ 前不激活控件。如果表单集对象的 WindowType 属性没有设置为 2 (读),则忽略 NOREAD。

NOSHOW
指定在运行表单时,不调用表单的 Show 方法。当包含 NOSHOW 并运行表单时,直到表单的 Visible 属性设置为真(.T.)或表单的 Show
方法被调用,表单都是不可见的。

说明

DO FORM 执行表单或表单集的 Show 方法。

WindowType 属性的 读(2) 或 读模式(3) 设置是为了向后兼容性,而且只能用于转换来自早期 FoxPro
版本的表单。
sax6310
2013-09-09 · TA获得超过1153个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:655万
展开全部

先问一下,你设的是表单集还是单个表单,如果是表单集,要把表单集的NAME写上,即:

表单集1.表单1.ENABLED=.T.

这样引用会解决问题

如果不是表单集,出错可能有几种:

  1. 表单1未打开,无法找到;

  2. 表单1被RELEASE了,没在内存中,找不到

如果你想从一个表单中引用另一个表单,并且用完后再回到原表单,不论传没传参数,都可以使用表单集来完成,这样两个表单引用和切换很方便,有时可以将表单1隐藏,显示表单2,也可以显示表单1,隐藏表单2,不会出现上述问题。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式