在vb6中加载表单并在其卸载时接收通知?

在vb6中加载表单并在其卸载时接收通知?,vb6,Vb6,我希望form1加载form2,当form2卸载时,卸载form1 我想尽量减少耦合 用例: 我将form1作为半透明背景启动,以便form2更易于查看。 当form2卸载时,我希望form1也卸载。我将把这段代码与许多其他“form2”类型的表单一起重用 我考虑过接线员的地址。希望有更简单的方法。如果您以模式显示form2,则可以在show方法返回后卸载form1: 在form1中,其中显示form2: Form2.Show vbModal Unload Me 或者,如果不以模式显示form

我希望form1加载form2,当form2卸载时,卸载form1

我想尽量减少耦合

用例: 我将form1作为半透明背景启动,以便form2更易于查看。 当form2卸载时,我希望form1也卸载。我将把这段代码与许多其他“form2”类型的表单一起重用


我考虑过接线员的地址。希望有更简单的方法。

如果您以模式显示form2,则可以在show方法返回后卸载form1:

在form1中,其中显示form2:

Form2.Show vbModal
Unload Me
或者,如果不以模式显示form2,则可以在form2的卸载事件中卸载form1:

Private Sub Form_Unload(Cancel As Integer)
  Unload Form1
End Sub

如果我没记错的话,
Form
类有一个
Unload
事件,所以你应该可以订阅这个。一个表单类不可能处理另一个表单类的事件吗?@CodyGray,是的,这正是想法。但是我不知道如何让Form1订阅form2的卸载事件,而不在form2的卸载偶数处理程序中编写代码(我希望避免这样做以最小化耦合,并且每次都必须记住这样做)天哪,我希望其他在VB6方面有较新经验的人会出现,并通过我的评论唤起他们的记忆。如果我没记错的话,如果您想处理已声明对象的事件,可以只声明一个标有
WithEvents
的模块级变量。当然,这会增加Form1和Form2之间的耦合,但这似乎是不可避免的。不过,我不太清楚您的评论是什么意思:如果Form1正在处理Form2的卸载事件,Form2甚至不需要处理自己的卸载事件。处理将在Form1的类中进行。