先判断是否有活动的窗体存在,然后再用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
不难,加入下列代码:Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)If Not MDIForm1.ActiveForm Is Nothing Then Cancel = 1End Sub即可
怎么样做到在关闭主窗体之前,判断是否有打开的子窗体,如果有,并且退出前CANCEL掉了退出事件,子窗体应该还是显示点击主窗体退出之前的状态 ------------------ Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If Not Me.ActiveForm Is Nothing Then Cancel = True End If End Sub
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
------------------
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Not Me.ActiveForm Is Nothing Then
Cancel = True
End If
End Sub