C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ジェネリックFormの動的生成


(過去ログ 117 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■68811 / inTopicNo.1)  ジェネリックFormの動的生成
  
□投稿者/ さくら (1回)-(2013/11/18(Mon) 22:57:53)

分類:[C#] 

(言語)C# (.NET Framework4.0)

(やりたいこと)ジェネリックFormのインスタンスを動的に生成したいです。(ソースコード中の Form1)
(現状)Activator.CreateInstanceFromを使用していますが、インスタンスの生成に失敗してしまいます。
    Formのジェネリック型指定の方法がわからないです。

(質問)Activator.CreateInstanceFromで、ジェネリックの型指定をどのようにすればいいのでしょうか。
    もしくは、他に方法があるのでしょうか。。
    ご存知の型がいらっしゃいましたらご教授いただければと思います。


-- ソースコード(簡略化しています)----------------------------------------------------------

string formName = "TestNameSpace.Form1"; //←Form1であったりForm2であったり動的に設定されます。

var handle = System.Activator.CreateInstanceFrom
(System.Reflection.Assembly.GetEntryAssembly.CodeBase(),
formName)

var frm = handle.Unwrap() as FormBase
frm.Show()

-------------------------------------------------------------------------
partial class Form1<T> : BaseForm //このForm1クラスのインスタンスを動的に生成したい。
{
private T data;

Form1(T data)
{
this.data = data;
}
}
引用返信 編集キー/
■68812 / inTopicNo.2)  Re[1]: ジェネリックFormの動的生成
□投稿者/ Hongliang (125回)-(2013/11/18(Mon) 23:21:06)
・Assembly.GetTypeでTypeオブジェクトを取得(型名に型引数1つであることを示す`1を付ける)
・Type.MakeGenericTypeで型引数を与えて閉じた構築型を指すTypeオブジェクトを取得
・Activator.CreateInstanceで引数を与えつつインスタンス生成
という手順になるかと思いますが。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -