2016-03-02 35 views
0

我想form1加载form2,当form2卸载时,卸载form1。在vb6中加载表单并在卸载时收到通知?

我想尽量减少耦合。

使用案例: 我将form1作为半透明背景启动,以便更容易看到form2。 当form2卸载时,我希望form1也会卸载。我将重复使用这些代码以及许多其他'form2'类型的表单。

我已经考虑过addressof运算符。希望更简单些。

+1

嗯,如果我没记错的话,有一个'Form'类的'Unload'事件,所以你应该能够订阅此。一个表单类不能处理另一个表单类的事件吗? –

+0

@CodyGray,是的,这正是这个想法。但我不知道如何轻松地让Form1订阅form2的Unload事件,而无需在form2的卸载甚至处理程序中编写代码(我想避免将耦合最小化,并且必须*记住*每次都这样做) –

+0

天哪,我是希望在VB 6中有更新的经验的其他人会来,并且通过我的评论慢慢地记住他们的记忆。如果我没有记错的话,如果你想处理声明的对象的事件,你可以声明一个标记为“WithEvents”的模块级变量。当然,这会增加Form1和Form2之间的耦合,但这对于你所描述的内容来说似乎是不可避免的。我不太清楚你的评论意味着什么,但是:如果Form1处理Form2的Unload事件,Form2甚至不需要处理它自己的Unload事件。处理将在Form1的类中进行。 –

回答

0

如果你显示窗口2模态,那么你可以展示方法返回后卸载Form1中:

在Form1,在显示窗口2:

Form2.Show vbModal 
Unload Me 

或者,如果你没有显示窗口2模态,那么您可以在卸载事件Unload Form1中的窗口2:

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