送分100分:VB6程序调试结束后,VB6的【中断】【结束】按钮还处于有效状态,是怎么回事。
VB6程序调试结束后,也就是调试程序的MDIFORM已经点击了关闭按钮,正常退出了,VB6的【中断】【结束】按钮还处于有效状态,是怎么回事。如何查看,哪些窗体或控件还没有被关闭。 有些东西你用过之后,你要把它们放回原处的。比如你吃完饭之后,你要收拾碗筷。同样的,一些变量、对象也得这样处理。。。
我现在的问题,就是想请教一下大家,在MDIFORM关闭之前,怎么查看一下,哪些窗体或对象变量或其他相关的东西,没有被关闭。
你可以在调试的时候,添加一个事件代码,事件名称MDIForm_QueryUnload,添加完成后,在事件上加个断点,然后运行你的工程,在点击关闭MDI窗口时,断点被激活,此时你打开“本地窗口”,即可看到当前窗口存活期内存在的变量。 用了Timer? On Error Resume Next
Dim frm As Form
'先关闭所有窗体
For Each frm In Forms
If frm.MDIChild Then Unload frm
Next
查看是否有循环使用了DoEvents,窗口关闭后循环没有结束。 窗口关闭事件里面 加 end 试试
你到立即窗口里面输出一下每个窗体的状态,看看哪个还活着. 最常见的原因是还有窗体未关闭(而且通常是隐藏状态)。
因为关闭 MDI 主窗体只会自动关闭 MDI 子窗体,对普通窗体是没有影响的。
先在 MDI 主窗体中加入下面的代码,看看哪些窗体未关闭
Private Sub MDIForm_Unload(Cancel As Integer)
Dim frm As Form
For Each frm In Forms
If Not frm Is Me Then
Debug.Print frm.Name
End If
Next
End Sub
中断后找光标试试~~ 如果是lz说的那种情况,lz一般就该改一下程序的逻辑了~~ 程序的标准模块中存在MAIN函数,
要不要在MAIN函数中 加 END .
最好别用End。
正解
为何?
补充:VB , 网络编程