投稿者 ラオシス  (中学生) 投稿日時 2011/12/11 20:29:06
すでに答えは出ていますが、普通はForm1.Show()などとインスタンスを作成せずに
フォームにアクセスすることはあまりよくありません。
'× 
Form1.ShowDialog()

'○ 
Dim InstForm1 As New Form1
InstForm1.ShowDialog()


Form1
Public Class Form1
     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
         Dim InstForm2 As New Form2
         Dim InstForm3 As New Form3
        'ここでForm3がForm2でも操作できるようインスタンスを渡します 
         InstForm2.Show(InstForm3)
         InstForm3.Show()
     End Sub
End Class

Form2
Public Class Form2
     'Form1にあるInstForm3のコピーを格納する 
     Private InstForm3 As Form3
     
     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
         Handles Button1.Click

         Me.InstForm3.Close()
     End Sub

     'Form2から操作できるようForm3のインスタンスが渡されます。 
     Public Overloads Sub Show(ByVal Form3 As Form3)
          Me.InstForm3 = Form3
          '自分(Form2)を表示します 
          Me.Show()
    End Sub
End Class

急ぎでかいたのでもしかしたら動かないかもしれませんが、それも学習と思って修正してみては?

第29回 2つ目のフォーム
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard29.htm

質問するときはどうやったらできたかというものも報告してくださいね。後々、同じことでわからなくなった方にも参考になりますので。