投稿者 KOZ  (社会人) 投稿日時 2024/11/1 01:17:57
前の質問が解決したなら、解決済にしてください。

さて、何をもって”動的”とするのか不明確ですが、たとえばこんな方法があります。

ジェネリックを使う方法
Sub CreateAndShow(Of T As {Form, New})()
    Dim frm As New T()
    frm.Show()
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    CreateAndShow(Of Form2)()
End Sub


クラス名を指定する方法
Sub CreateAndShow(formClassName As String)
    Dim formType As Type = Type.GetType(formClassName)
    Dim instance As Form = DirectCast(Activator.CreateInstance(formType), Form)
    instance.Show()
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    CreateAndShow("WindowsApp1.Form2")
End Sub