注册 登录
编程论坛 VFP论坛

请教如何刷新另一个打开的表单

huasinstamps 发布于 2025-07-27 16:17, 281 次点击
我同时打开了表单A和表单B,请教各位老师前辈,怎么在表单A中刷新表单B?

具体点说就是,在当前表单A中修改了某个表,这个表在表单B中也有。关闭当前表单A时,我想让表单B中的这个表自动刷新
8 回复
#2
wcx_cc2025-07-27 19:48
不难!如果2个表单是相互独立的,B表单放个timer,打开B表单时启动。当关闭A表单时生成1个中间表(一定是dbf的,并且是关闭状态),让B表单timer检索如果有中间表存在,就用中间表来刷新B表单中的表,之后删除中间表,终止timer。

[此贴子已经被作者于2025-7-27 19:55编辑过]

#3
hsfisher2025-07-28 08:32
关闭表单A时,加入语句表单B.refresh试试?
#4
huasinstamps2025-07-30 11:33
回复 2楼 wcx_cc
我试试,虽然超出了我的水平,不是很理解
#5
huasinstamps2025-07-30 11:33
回复 3楼 hsfisher
这个不行哎
#6
luxiujun2025-07-30 11:58
A表单 定义变量 oform =thisform,调用B表单时传递参数,在B表单中直接用oform.refres刷新A表单数据。
#7
cjc10102025-08-27 08:41
1、定义个全局变量,表示表单B的别名,用于表单A调用。
   public bdb
2、打开表单B时用这个全局变量作为别名。
   do form 表单B name bdb
3、在表单A更新数据时,调用全局变量刷新表单B。
   dbb.refres

#8
ccb20002025-08-27 16:25
参考一下:
PRIVATE m.q_forms_nn
m.q_forms_nn=1
DO WHILE TYPE("_SCREEN.FORMS(m.q_forms_nn)")="O"
   IF UPPE(ALLTRIM(_screen.forms(m.q_forms_nn).name))==UPPE(ALLTRIM("form_b"))
      _screen.forms(m.q_forms_nn).REFRESH
      EXIT
   ENDI
   m.q_forms_nn=m.q_forms_nn+1
ENDDO

#9
schtg2025-08-27 17:06
回复 8楼 ccb2000
学习啦,谢谢!
1