MDI主窗体打开了一个子窗体,这时候如果点了主窗体的关闭按钮,子窗体就不见了。怎么样做到在关闭主窗体之前,判断是否有打开的子窗体,如果有,并且退出前CANCEL掉了退出事件,子窗体应该还是显示点击主窗体退出之前的状态。请高手赐教!
谢谢!

解决方案 »

  1.   

    先判断是否有活动的窗体存在,然后再用MSGBOX给出选择。
    Private Sub mnushut_Click()
        If Not (Me.ActiveForm Is Nothing) Then
            If MsgBox("are you sure ?", vbYesNo, "system") = vbYes Then
                Do While Not (Me.ActiveForm Is Nothing)
                    Unload Me.ActiveForm
                Loop
            Else: Exit Sub
            End If
        
        End If
    End Sub
      

  2.   

    不难,加入下列代码:Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)If Not MDIForm1.ActiveForm Is Nothing Then Cancel = 1End Sub即可
      

  3.   

    怎么样做到在关闭主窗体之前,判断是否有打开的子窗体,如果有,并且退出前CANCEL掉了退出事件,子窗体应该还是显示点击主窗体退出之前的状态
    ------------------
    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        If Not Me.ActiveForm Is Nothing Then
          Cancel = True
        End If
    End Sub