Winforms 当应用程序关闭时,无模式VB6应用程序如何进行清理?

Winforms 当应用程序关闭时,无模式VB6应用程序如何进行清理?,winforms,vb6,interop,com-interop,Winforms,Vb6,Interop,Com Interop,VB6应用程序正在使用Interop Forms Toolkit处理用.NET编写的表单。工具箱的文档建议在VB6应用程序关闭时调用工具箱上的方法来通知工具箱 VB6应用程序使用一个子主程序加载启动屏幕,然后显示多个无模式窗体。Sub-Main完成后,应用程序仍在运行。应用程序如何检测到它正在关闭并调用工具箱上的清理方法?自从我用VB6编写以来已经有一段时间了,但是如果我没记错的话,您可以使用卸载事件调用清理代码(类似于.net中的关闭事件)。您还可以检查VB6应用程序中是否没有其他表单仍在模块

VB6应用程序正在使用Interop Forms Toolkit处理用.NET编写的表单。工具箱的文档建议在VB6应用程序关闭时调用工具箱上的方法来通知工具箱


VB6应用程序使用一个子主程序加载启动屏幕,然后显示多个无模式窗体。Sub-Main完成后,应用程序仍在运行。应用程序如何检测到它正在关闭并调用工具箱上的清理方法?

自从我用VB6编写以来已经有一段时间了,但是如果我没记错的话,您可以使用卸载事件调用清理代码(类似于.net中的关闭事件)。您还可以检查VB6应用程序中是否没有其他表单仍在模块中运行(可能与包含Sub Main的表单相同),创建一个公共Sub(例如AppCleanUp),以保存清理代码

将类添加到项目中(例如clsAppCleanup)。在这个类中,在类_Terminate事件处理程序中添加代码,该事件处理程序调用在上一步中创建的子对象

在模块(可能与包含Sub Main的模块相同)中,定义clsAppCleanup变量

在Sub Main中,实例化clsAppCleanup


当应用程序关闭时,类上的终止事件将导致清理代码运行。

创建一个包含FormCount变量的模块。此变量将由应用程序中的所有窗体共享。在每个表单的form\u Initialize方法中递增FormCount变量。在每个窗体的form_Terminate方法中递减FormCount。当FormCount降回0时,您可以通知您的表单工具箱,其中的表单已卸载


您不必担心多线程问题,因为VB6创建单线程应用程序,因此一个窗体的Initialize(或Terminate)方法将在其他任何窗体开始执行之前运行到完成状态。

卸载事件发生在窗体中。该应用程序正在显示多个表单。我正在寻找一个中心位置来检测应用程序正在关闭,因为应用程序中有400多个表单。
私有子表单\u卸载(取消为整数)
如果forms.Count=1,则msgbox“我是最后一个表单”
`End Sub`*正在关闭--请校对。