32

一般的なフォームを作成できるはずです。

public partial class MyGenericForm<T> :
    Form where T : class
{
    /* form code */
    public List<T> TypedList { get; set; }
}

有効な C# であり、コンパイルされます。ただし、リソースが見つからないことを示す画像がある場合、デザイナーは機能せず、フォームは実行時例外をスローします。

これは、Windows フォーム デザイナーが、リソースが単純型の名前で格納されると想定しているためだと思います。

4

4 に答える 4

21

はい、できます!これは、トリックで少し前に作成したブログ投稿です。

汎用フォームの設計

編集:すでにこのようにやっているようです。この方法はうまく機能するので、ハックすぎるとは思いません。

于 2008-08-14T11:33:21.377 に答える
0

これを回避するためのハックがありますが、これは機能しますが理想的ではありません:

単純な名前でフォームを継承する新しいクラスをプロジェクトに追加します。

internal class MyGenericForm:
    MyGenericForm<object> { }

これは、設計者がまだ間違っているにもかかわらず、予想される単純型 (つまり なし<>) がまだ見つかっていることを意味します。

于 2008-08-14T11:32:45.137 に答える