VB调试好的EXE程序,在运行时点右上角的关闭,程序还是驻留在内存中,如何捕捉这个关闭动作,正真关闭程序?

解决方案 »

  1.   

    这是你要的吗?
    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    S = MsgBox("Unload?", vbYesNo, "信息提示")
    If S = vbYes Then
    End
    End If
    End Sub
      

  2.   


    你在代码状态下调试,也是点击右上角的关闭吗??一般情况下遇到这样的情况,是由于程序在关闭窗体的时候,还调用了其他窗体的代码比如你在frmMain里点X关闭,frm1里有个时钟在不断的计时,frmMain里显示frm1计时器的数据,这样你就关闭不了,看起来是都不见了,实际上还存在检查下程序,把所有类似的代码都屏蔽掉再看下
      

  3.   


    把不可见的窗体都关闭,停止所有的 Timer 和循环中的代码。一个简单强硬的做法:Private Sub Form1_Unload()
      End
    End Sub
      

  4.   


    这个好. End 的含义是由VB来做清理工作.
      

  5.   

    如果要捕捉关闭动作应该这样:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
            Dim RetL As Long
            RetL = MsgBox("你确认要关闭吗?", vbYesNo, "信息提示")
            If RetL = vbYes Then
               Cancel = 0
               End
            Else
               Cancel = 1
            End If
    End Sub