一个project
里面有frm1 frm2 frm3 frm4等多个form
我让frm1在程序执行时先显示
通过点击frm1上的各个按钮分别调出frm2 frm3.....
现在我把一个名字为exit的command放到frm1中,
我希望点击exit能够退出程序,
但是frm2 ,frm3还在显示,程序并没有完全退出。
怎么办?我的代码是
Private Sub CmdExit_Click()
Unload Me
End Sub
我还试过
Private Sub CmdExit_Click()
Unload All
End Sub
不过这个all出错了。艾。帮忙

解决方案 »

  1.   

    你在菜单工程——〉 某某工程属性--〉看看启动对象是不是frm1,或者用下面的方法
    Private Sub CmdExit_Click()
    end
    End Sub
      

  2.   

    Dim frm As Form
    For Each frm In Forms
       Unload frm
    Next
      

  3.   

    楼上正解,这样可以释放内存,比单纯的END好
      

  4.   

    Dim frm As Form
    For Each frm In Forms
       Unload frm
    Next
      

  5.   

    还有一个释放的顺序问题'Place the following code in a Form_Unload()Dim i as integer
    While forms.Count > 1
        ' Find first form besides "me" to unload
        i = 0
        While forms(i).Caption = Me.Caption
             i = i + 1
        Wend
        Unload forms(i)
    Wend' Last thing to be done...
    Unload Me
    End
      

  6.   

    Private Sub CmdExit_Click()
    Unload Me
    end
    End Sub
    就可以了
      

  7.   

    建议你在调出form时用以下方式
    form.show vbmodal
      

  8.   

    Public Sub CloseAll(Optional ByVal force As Boolean = False)
     
        Dim i As Long
        On Error Resume Next
        For i = Forms.Count - 1 To 0 Step -1'遍历所有窗体
            unload Forms(i) 
            If Not force Then
                If Forms.Count > i Then
                    Exit Sub
                End If
            End If
        Next i
        If force Or (Forms.Count = 0) Then Close
        If force Or (Forms.Count > 0) Then End
    End Sub
      

  9.   

    我试过了,这样可以:
       Dim frmTmp As Form
       
       For Each frmTmp In VB.Forms
           Unload frmTmp
       Next
      

  10.   

    我是这样用的
    Private Sub MDIForm_Unload(Cancel As Integer)
        Dim f As Form
        InsertLog "退出系统", " "
        For Each f In Forms
            If Not f Is MDIfrmMain Then Unload f
        Next
        If Forms.Count > 1 Then
            Cancel = 1
            Exit Sub
        End If
        
        Cn.Close
        Set Cn = Nothing
    End Sub