リフレクションを使わずに名前文字列で動的にフォームを表示できるのではないかと思います。
2 に答える
1
あなたの質問は明確ではありません。しかし、これはあなたが探しているものですか?
if (form.Name == "name1") form.Show();
于 2013-02-18T18:11:18.807 に答える
0
あなたは、このような巨大なswitch
声明で、することができます:
switch (formName)
{
case "form1":
new Form1().Show();
break;
...
}
同じswitch
ステートメントがファクトリパターンにも当てはまります。
しかし、次のようなことをする方がはるかにクリーンです。
var o = Activator.CreateInstance(Type.GetType(formName));
デフォルトでは、このType.GetType(string)
メソッドは大文字と小文字を区別する検索を実行するため、それが機能しない場合は、大文字と小文字Type.GetType(string, bool, bool)
を無視するかどうかを決定できる別のオーバーロードを使用できます。次のようになります。
var o = Activator.CreateInstance(Type.GetType(formName, true, false));
于 2013-02-18T18:12:45.870 に答える