一.Module1类代码
Public newfrm As New Form2
二.Form1代码 ----------------一个Command1
Private Sub Command1_Click()
Set newfrm = New Form2
newfrm.list1
newfrm.Show
End Sub
三.Form2代码 ----------------2个Command1 Command2 一个TextboxPrivate Sub Command1_Click()
'Dim newfrm As Form2
Set newfrm = New Form2
list1
newfrm.Show 1
    
End SubPrivate Sub Command2_Click()
Form3.Show 1
End SubPublic Sub list1()
newfrm.Text1.Text = Now()
End Sub
四.Form3代码 ----------------1个Command1  
Private Sub Command1_Click()
'Set newfrm = New Form2
newfrm.list1
Unload Me
End Sub1.在form1 打开 form2, 这时候form2是第一层2.form2 第一层 在form2点Command2_Click 打开form3 在点from3的Command_Click 可以newfrm.list1把时间更新到 form2的.text1文本框问题:
1.在form2 第一层点按钮Command1 ,又打开一个form2 这个是第二层了  
2.在把第二层form2给关闭了 ,是不是第一层的form2 还在 那在点第一层的from2 的Command2_Click 打开form 打开form3 .,在点在点from3的Command_Click 不可以newfrm.list1把时间更新到 form2第一层的.text1文本框了  不知道怎么回事 望各位帮忙解决 是不是我的方法用错了 有什么好的办法

解决方案 »

  1.   

    你把Set newfrm = New Form2
    重新定义一个实例名称,不要用newfrm。
      

  2.   

    本帖最后由 bcrun 于 2011-07-15 10:51:00 编辑
      

  3.   

    Dim objForm As New Form1
      Load objForm
      i = i + 1
      With objForm
      .ZOrder 0
      .Caption = "Form" & i
      .show 1
      .Top = i * 200
      .Left = i * 200
      End With
    3楼的 这样做的话caption 没边 感觉都是form1
      

  4.   

    i设个初始值,i=1,放到form_load事件,这样再执行上段代码就是form2,form3......依次类推
      

  5.   

    第二层时newfrm又被赋于了新的实体已经不是第一层实体当然就不能再正确返回了(newfrm是变量)。程序简单如下处理就可以了:'from1 code
    Private Sub Command1_Click()
     Set newfrm = New Form2
     newfrm.list1
     newfrm.Show
    End Sub'form2 code
    Private Sub Command1_Click()
     Set newfrm = New Form2
     newfrm.list1
     newfrm.Show 1
    End SubPrivate Sub Command2_Click()
     Set newfrm = Me
     Form3.Show 1
    End SubPublic Sub list1()
     newfrm.Text1.Text = Now()
    End Sub'from3 code
    Private Sub Command1_Click()
     newfrm.list1
     Unload Me
    End Sub'Module1 code
    Public newfrm As Form