2011-09-08 60 views
0

我有一個非常簡單的Windows窗體設置。 Form1上有一個進度條和一個按鈕,當點擊該按鈕時,將打開Form2,Form2上還有一個啓動Form3的按鈕。在Form3上是一個我想用來將事件重新提交給Form1的按鈕。vb.net傳遞值的形式

爲了實現這一點,我可以在form1上添加一個事件處理程序,它將偵聽form3中引發的類型事件?或者我必須將form1的參考傳遞給form2,然後將form2的參考傳遞給form3?

任何意見,以達到這一點的最佳途徑,不勝感激。

非常感謝

+0

表單是模態還是非模態?進度條是否繼續更新並且Form1在其他表單打開時接收消息?按下form3上的按鈕時會發生什麼,它會關閉form2和form3嗎? – ja72

回答

0

你會想將「泡沫式」的事件被第三形式拋出每個窗體上添加事件處理程序。

Public Class Form1 

    Private WithEvents form2 As New Form2 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     form2.Show() 
    End Sub 

    Private Sub Form2_MyEvent() Handles form2.MyEvent 
     MessageBox.Show("We're back on Form1.") 
    End Sub 

End Class 

Public Class Form2 

    Private WithEvents form3 As New Form3 
    Public Event MyEvent() 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     form3.Show() 
    End Sub 

    Private Sub Form3_MyEvent() Handles form3.MyEvent 
     RaiseEvent MyEvent() 
    End Sub 

End Class 

Public Class Form3 

    Public Event MyEvent() 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     RaiseEvent MyEvent() 
    End Sub 

End Class