2016-03-02 34 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