Public Class Form1 'Form2 のイベントを捕らえる Private WithEvents childForm As Form2 = Nothing 'Button1 を押すと、Form2 を表示する Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If childForm Is Nothing Then childForm = New Form2() End If 'childForm.Show(Me) 'これだと親子関係になってしまう childForm.Show() 'これならどちらのフォームも手前にできる End Sub 'Form2 から変更通知が飛んで来たら、自フォームの txt_pic に反映させる Private Sub childForm_AnswerChanged(sender As Object, e As Form2.AnswerChangedEventArgs) Handles childForm.AnswerChanged txt_pic.Text = e.Answer End Sub Private Sub childForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles childForm.FormClosed childForm = Nothing End Sub End Class Public Class Form2 '変更通知用の「イベント」を自作しておく Public Event AnswerChanged As EventHandler(Of AnswerChangedEventArgs) 'EventArgs クラスを継承して、受け渡したい情報を「プロパティ」として盛り込む Public Class AnswerChangedEventArgs Inherits EventArgs Public ReadOnly Property Answer As String Public Sub New(answer As String) Me.Answer = answer End Sub End Class ' txt_ans が書き換わったらすぐに、変更を通知したい場合 ' Private Sub txt_ans_TextChanged(sender As Object, e As EventArgs) Handles txt_ans.TextChanged ' 自フォームの txt_ans の内容を持ったイベント引数を用意する Dim arg As New AnswerChangedEventArgs(txt_ans.Text) ' その情報を引数に渡して、自作の変更通知イベントを発生させる RaiseEvent AnswerChanged(Me, arg) End Sub 'Button1 が押された時に、変更を通知したい場合 ' 'Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' RaiseEvent AnswerChanged(Me, New AnswerChangedEventArgs(txt_ans.Text)) 'End Sub End Class