当前位置:编程学习 > VB >>

送分100分:VB6程序调试结束后,VB6的【中断】【结束】按钮还处于有效状态,是怎么回事。

VB6程序调试结束后,也就是调试程序的MDIFORM已经点击了关闭按钮,正常退出了,VB6的【中断】【结束】按钮还处于有效状态,是怎么回事。

如何查看,哪些窗体或控件还没有被关闭。 有些东西你用过之后,你要把它们放回原处的。比如你吃完饭之后,你要收拾碗筷。同样的,一些变量、对象也得这样处理。。。
引用 1 楼 aisac 的回复:
有些东西你用过之后,你要把它们放回原处的。比如你吃完饭之后,你要收拾碗筷。同样的,一些变量、对象也得这样处理。。。


我现在的问题,就是想请教一下大家,在MDIFORM关闭之前,怎么查看一下,哪些窗体或对象变量或其他相关的东西,没有被关闭。
引用 3 楼 bigtitsat 的回复:
引用 1 楼 aisac 的回复:
有些东西你用过之后,你要把它们放回原处的。比如你吃完饭之后,你要收拾碗筷。同样的,一些变量、对象也得这样处理。。。


我现在的问题,就是想请教一下大家,在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
引用 4 楼 aisac 的回复:
引用 3 楼 bigtitsat 的回复:
引用 1 楼 aisac 的回复:
有些东西你用过之后,你要把它们放回原处的。比如你吃完饭之后,你要收拾碗筷。同样的,一些变量、对象也得这样处理。。。


我现在的问题,就是想请教一下大家,在MDIFORM关闭之前,怎么查看一下,哪些窗体或对象变量或其他相关的东西,没有被关闭。

你可以在调试的时候,添加一个事件代码,事件名称MDIForm……

  查看是否有循环使用了DoEvents,窗口关闭后循环没有结束。 窗口关闭事件里面 加 end 试试
引用 9 楼 xc_aspnet 的回复:
窗口关闭事件里面 加 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
引用楼主 bigtitsat 的回复:
如何查看,哪些窗体或控件还没有被关闭。

中断后找光标试试~~ 如果是lz说的那种情况,lz一般就该改一下程序的逻辑了~~ 程序的标准模块中存在MAIN函数,

要不要在MAIN函数中  加   END   .
引用 15 楼 bigtitsat 的回复:
程序的标准模块中存在MAIN函数,

要不要在MAIN函数中 加 END .

最好别用End。
引用 9 楼 xc_aspnet 的回复:
窗口关闭事件里面 加 end 试试

正解
引用 16 楼 aisac 的回复:
引用 15 楼 bigtitsat 的回复:
程序的标准模块中存在MAIN函数,

要不要在MAIN函数中 加 END .

最好别用End。

为何?
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,