2011-09-08 110 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