文字列をForm型に変換するには?

解決


たら  2006-12-12 05:20:01  No: 134540

VS2005(VB.net)でString文字列(Form名称)からFormを呼び出したいのですが、うまくいきません。
VB6のときは Forms.add Form名称  でFormsコレクションに追加後
Showさせていました。
文字列をFormに変換させる方法はあるのでしょうか?


もげ  2006-12-12 20:27:06  No: 134541

こちらをどうぞ。
http://dobon.net/vb/dotnet/vb6/formscollection.html


たら  2006-12-12 21:09:31  No: 134542

もげさん、ありがとうございます。
言葉が足りなかったです。
決まったFormは問題なく呼び出せますし、
Formsコレクション(もどき)も作成してコレクションへも追加できます。
ただし、呼び出すForm名称を設定から読込み、Formを表示する方法が
わからずに困っています。

引き続きお願いします。


大吉末吉  2006-12-12 21:17:33  No: 134543

こちら?

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()
------------------------------------------------------------------
とか・・・


大吉末吉  2006-12-12 21:22:42  No: 134544

訂正です。

>        'Dim F = FormObject
>        '       F.Show()

は、

>        'Dim F As Form = FormObject
>        '       F.Show()

の間違いです。「FormType.InvokeMember」の代わりに、この2行を使うと、ちょっとは楽かなと・・・


たら  2006-12-12 22:11:29  No: 134545

大吉末吉さん、ありがとうございました。
サンプルの通り実装したところ、うまくいきました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加