VFP表单如果在程序中互相调用?

VFP程序中,分别有两个独立的表单form1和form2,如何在form2里面用代码控制form1的控件?除了用表单集的thisformset.form1之外还有什么办法?
可能我说的不清楚大家有点误会,fouroceans的回答比较接近我的意思,我按他的方法试了一下,在程序里面运行的话显示"程序错误,找不到对象f1",但在命令窗口方式下就可以,不知是什么原因.

第1个回答  2008-01-15
请看我的商用软件的部分 调用关系,这是在一个命令组中的窗体调用(命令组控件再一个窗体中):
do case
case this.value=1 &&设定冬停有关系数
do form .\txt\frmsdl31
case this.value=2 &&自动结算租赁费
do form .\txt\frmsdl32
do form .\txt\frmsdl31
do sdl32 in .\abc
do form .\txt\frmsdl33
case this.value=3 &&租赁结算的显示
do form .\txt\frmsdl33
case this.value=4 &&假定日期计算租赁费
DO FORM .\txt\frmsdl34
do form .\txt\frmsdl33
case this.value=5 &&租赁结算的模拟显示
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup preview
thisform.show
case this.value=6 &&租赁结算的打印
thisform.hide
report form .\txt\frxsdl35.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=7 &&自动生成损坏价格
do sdl37 in .\abc
do form .\txt\frmsdl37
case this.value=8 &&损坏价格的显示
do form .\txt\frmsdl37
case this.value=9 &&损坏价格的模拟显示
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup preview
thisform.show
case this.value=10 &&损坏价格的打印
thisform.hide
report form .\txt\frxsdl38.frx Environment pdsetup to print prompt noconsole
thisform.show
case this.value=11 &&丢失价格自动生成
do sdl311 in .\abc
do FORM .\txt\frmsdl311.scx
do sdl311_1 in .\abc
do FORM .\txt\frmsdl312.scx
case this.value=12 &&丢失价格的显示
do FORM .\txt\frmsdl312.scx
case this.value=13 &&丢失价格的模拟显示
thisform.hide
report form .\txt\frxsdl313.frx Environment pdsetup preview
thisform.show
endcase
第2个回答  2008-01-25
在form1和form2同时运行的情况下,否则先do form 表单名 打开表单
假设form1的存盘文件名为:f1.scx
那么你在form2调用form1内控件方法为
f1.command1.enabled=.f.

有没有看清楚我说的
是存盘文件名
不是form的name属性值
看清楚le本回答被提问者采纳
第3个回答  2008-01-20
在FORM2中使用变量P作为改变FORM1状态:
IF ...
P='1'
ELSE
P='2'
ENDIF
...
do form form1 with p
*把参数P传递给FORM1

表单FORM1的INIT事件:
LPARAMETERS n
*接受FORM2参数
do case
case n='1'
thisform.command1.enabled=.f.
case n='2'
thisform.command1.enabled=.t.
...
endcase