フォームを表示するために汎用的にしたい関数があります。フォームがすでに開いているかどうかを関数で確認し、開いていない場合はフォームを一番上に移動して、フォームの新しいインスタンスを作成して表示します。
フォームが開いているかどうかを確認する最初の部分はすべて問題ありませんが、Tからキャストして、タイプTの新しいフォームオブジェクトを作成しています。このコード行を使用してフォームのインスタンスを作成しましたが、obj = Activator.CreateInstance<T>();
すべてが表示されるわけではありません。インテリセンスのメソッドとプロパティ。コードForm x = new Form1.
x
はすべてのメソッドとプロパティを表示しますが。
私はここで何か間違ったことをしていると確信しています。
private static void ShowForm<T>( )
{
T obj = default( T );
List<T> opened = FormManager.GetListOfOpenForms<T>();
if ( opened.Count == 0 )
{
// not opened
// obj does not show all properties and methods
obj = Activator.CreateInstance<T>();
// x shows all properties and methods
frmLogin x = new frmLogin();
}
else
{
// opened
}
}