投稿者 nakaP  (社会人) 投稿日時 2009/12/25 04:00:04
>フォームは同じフォームを、複数表示させたいので
>Form1_Loadの、外で dim b as new form2
>と、
>宣言すると、一つしか出ないのですが解決策ないですか? 

MDIFormみたいなことがしたいのでしょうか。
同一のものを複数利用したい場合は配列を使います。
クラス変数(Form_Loadなどのプロシジャ外で宣言した変数)の場合はDimステートメントではなくPrivateステートメントを利用したほうが良いです。
クラス変数の場合は、利用する直前にインスタンスの生成(New)をしたほうが良いです。

以上をまとめると以下のような感じ。
Public Class Form1
    Private f(2) As Form2

    Private Sub Button1_Click(Byval sender As Object, Byval e As System.EventArgs) Handles Button1.Click
        f(0) = New Form2()
        f.TopLebel = False
        Me.Controls.Add(f(0))
        f(0).Show()
    End Sub

    Private Sub Button2_Click(Byval sender As Object, Byval e As System.EventArgs) Handles Button2.Click
        f(1) = New Form2()
        f.TopLebel = False
        Me.Controls.Add(f(1))
        f(1).Show()
    End Sub

    Private Sub Button3_Click(Byval sender As Object, Byval e As System.EventArgs) Handles Button3.Click
        f(2) = New Form2()
        f.TopLebel = False
        Me.Controls.Add(f(2))
        f(2).Show()
    End Sub
End Class

手書きなので細かいところは間違ってるかも。