Private Sub Timer1_Timer()
Form1.Text1.Text = Form4.Text1.Text
End Sub上面的代码,如果Form1先启动,而Form4未启动。Form1.Text1.Text仍然显示Form4.Text1.Text的值,本来应该为空的,谁知道这是为什么?(主要目的,想让Form1判断Form4的运行状态,如果Form4运行到某一步骤,Then Form1执行相应的语句)
Form1.Text1.Text = Form4.Text1.Text
End Sub上面的代码,如果Form1先启动,而Form4未启动。Form1.Text1.Text仍然显示Form4.Text1.Text的值,本来应该为空的,谁知道这是为什么?(主要目的,想让Form1判断Form4的运行状态,如果Form4运行到某一步骤,Then Form1执行相应的语句)
执行这句时,尽管form4未启动,也会被加载到内存,仅是为显示而已
判断form4.visible为true/false 即可
,试一试:
Private Sub Timer1_Timer()
Set Form4 = Nothing
Form1.Text1.Text = Form4.Text1.Text
For Each f In Forms
Debug.Print f.Caption
Next
End Sub
(定义在form1里使用时用Form1.ok,模块里直接写ok.建议用模块)form4中你的"某一步骤"后面加上
ok=true然后
form1中
Private Sub Timer1_Timer()
if ok
Form1.Text1.Text = Form4.Text1.Text
ok=false
end if
End Sub
执行以一句:
如果form4已经加载(无论显示与否)则返回form4.text1.text的值
如果form4未经加载,则先加载form4(不显示),然后返回form4.text1.text的值(主要目的,想让Form1判断Form4的运行状态,如果Form4运行到某一步骤,Then Form1执行相应的语句)
哪就让form4(可隐藏form4.hide)一直运行着吧,根据form4.text1.text里的值的变化判断运行到哪一步了。
不仅有原理,还有源码。不胜感激,受益匪浅。
真是初学者的天堂,
thank you everyone