当前位置: 代码迷 >> VFP >> A表单的edit1.value 要取B表单的edit1.value 怎么取
  详细解决方案

A表单的edit1.value 要取B表单的edit1.value 怎么取

热度:5209   发布时间:2013-02-26 00:00:00.0
A表单的edit1.value 要取B表单的edit1.value 如何取?
本问题是二个表单的数据传送。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系统中
  相关解决方案