我將此應用程序從VB6轉換而來。我有兩種形式。 Form1通過菜單項實例化Form2。 點擊關閉(X)時,我無法讓Form2結束。如果Form2處於「空閒」狀態,則罰款關閉;但如果我在循環中處理所有事件觸發的事件,但它會繼續在Form2中處理。我試着搞清楚Dispose,Close,Application.Exit,Application.ExitThread。我最後一次嘗試創建自己的事件來回擊Form1並處理Form2 - 它擊中它,但Form2仍在運行。這筆交易是什麼?順便說一句,如果我只使用Show vs ShowDialog - Form2只是閃爍並消失。VB.NET ShowDialog窗體無法結束
Form1 does this
Dim f2 as Import
:
Hide()
f2 = New Import
AddHandler f2.die, AddressOf killf2
f2.ShowDialog(Me)
Show()
Private Sub killf2()
f2.Dispose()
f2 = Nothing
End Sub
Form2
Public Event die()
Private Shadows Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Dispose()
Close()
e.Cancel = False
RaiseEvent die()
End Sub
我剛剛調用事件Form1_FormClosing,因爲我複製並粘貼。它實際上處理MyBase.FormClosing - 對於form2。如果這不是你的意思 - 那麼我怎樣才能在form1中監聽form 2的form_closing事件,而不僅僅是提高一個事件並設置f2 =沒有像我所做的那樣。謝謝! – 2010-11-04 20:51:21
我想可能是你所提到 – 2010-11-04 21:23:51
昏暗WITHEVENTS F2作爲進口 – 2010-11-04 21:24:13