本问题是二个表单的数据传送。A表单访问B表单,B表单要将B.edit1的数据传回A表单的A.edit1中。
1.A表单的按钮控件程序如下:
**Bedit1Value 是 public
do form B表单 with 1
if !empty(Bedit1Value)
thisform.edit1.value=Bedit1Value
endif
2.B表单的退出程序如下:
Bedit1Value=thisform.edit1.value
thisform.release
A表单程序执行时,除了执行do form B表单外,同时也执行了 if !empty()语句,不是等执行外do form B表单后,再执行它后面的语句,所以在第二次按按钮时,A表单edit1才有数据。请问如何将B表单的edit1.value 返回到A表单的edit1.value 中?
------解决方案--------------------------------------------------------
既然要到 B 退出时才将 Bedit1Value 赋值,为何不将 B 设为模式表单?
如果 B 是模式表单,这在 unload 事件中直接 return 值就行了
调用 B 时用语法: do form 表单B with 参数 to 返回值
----
如果另有原因不能做成模式表单,可以调用时将 A 传入 B
do form 表单B with 1, thisform
B 的 init 中接收参数:
lparameters 参数1, toCaller
Thisform.AddProperty('oCaller', toCaller)
退出前:
thisform.oCaller.edit1.value = thisform.edit1.value
thisform.Release()
------解决方案--------------------------------------------------------
Visual FoxPro 9.0 示例
在表单之间传递参数示例
文件:...\Samples\Solution\Forms\Param.scx
示例在VFP9系统中