DOBON.NET DOBON.NETプログラミング掲示板過去ログ

生成するフォームクラス名を動的に指定したい

環境/言語:[VB.NET]
分類:[.NET]

あるフォームから別のフォームを開くときに

Dim frm as Form1

としますが、この「Form1」部分を動的(=変数などを使って)指定できないでしょうか?

複数のボタンがあり、それぞれのボタンをクリックすることで開くフォームを分けたいのですが、一つのイベントプロシージャで処理したいのです。
2004/12/14(Tue) 20:42:47 編集(投稿者)

> としますが、この「Form1」部分を動的(=変数などを使って)指定できないでしょうか?

こんな感じで。

Dim FormName As String = "WindowsApplication1.Form1"

Dim F As Form = DirectCast(Type.GetType(FormName).GetConstructor(New Type() {}).Invoke(Nothing), Form)

F.Show()
同様のご質問を最近よく見るような気がしますが、これは私のサイトでも紹介されており、サイト内検索をしていただければ見つかると思うのですが...。

DOBON.NET .NET Tips - 文字列で指定されたクラスのインスタンスを作成する
http://dobon.net/vb/dotnet/programing/createinstancefromstring.html

DOBON.NET | プログラミング道 | プログラミング掲示板