VS2005(VB.net)でString文字列(Form名称)からFormを呼び出したいのですが、うまくいきません。
VB6のときは Forms.add Form名称 でFormsコレクションに追加後
Showさせていました。
文字列をFormに変換させる方法はあるのでしょうか?
こちらをどうぞ。
http://dobon.net/vb/dotnet/vb6/formscollection.html
もげさん、ありがとうございます。
言葉が足りなかったです。
決まったFormは問題なく呼び出せますし、
Formsコレクション(もどき)も作成してコレクションへも追加できます。
ただし、呼び出すForm名称を設定から読込み、Formを表示する方法が
わからずに困っています。
引き続きお願いします。
こちら?
(http://dobon.net/vb/dotnet/programing/createinstancefromstring.html)
例えば、名前空間が「A」で、フォーム名(クラス名)が「Form2」なら、
------------------------------------------------------------------
Dim FormType As Type = Type.GetType("A.Form2")
Dim FormObject As Object = FormType.InvokeMember(Nothing, _
System.Reflection.BindingFlags.CreateInstance, _
Nothing, Nothing, Nothing)
FormType.InvokeMember("Show", _
System.Reflection.BindingFlags.InvokeMethod, _
Nothing, FormObject, Nothing)
'Dim F = FormObject
' F.Show()
------------------------------------------------------------------
とか・・・
訂正です。
> 'Dim F = FormObject
> ' F.Show()
は、
> 'Dim F As Form = FormObject
> ' F.Show()
の間違いです。「FormType.InvokeMember」の代わりに、この2行を使うと、ちょっとは楽かなと・・・
大吉末吉さん、ありがとうございました。
サンプルの通り実装したところ、うまくいきました。
ツイート | ![]() |