次のように宣言されたクラスがあります。
public class Foo<T> : Panel where T : Control, IFooNode , new()
{
...
}
テストのために手動で追加しましたが、最終的にはフォーム デザイナーに表示できるものが必要になります。フォーム デザイナーはこれを気に入らず、次のように述べています。
タイプ「FooTestNameSpace.Foo」が見つかりませんでした。 アセンブリが次のことを確認してください。 このタイプが参照されます。 この型が開発プロジェクトの一部である場合は、 プロジェクトが正常にビルドされたことを確認してください。
興味深いことに、同様の警告も表示されますが、変数の宣言で使用したジェネリック型が含まれています。警告は次のとおりです。
タイプ 'FooTestNameSpace.Foo<FooTestNameSpace.FooNodeType>' が見つかりませんでした。 この型を含むアセンブリが参照されていることを確認してください。 このタイプが開発プロジェクトの一部である場合、 プロジェクトが正常にビルドされたことを確認してください。
私の単純な Form1 クラスの宣言は次のとおりです。
プライベート FooTestNameSpace.Foo myFoo;
(FooNodeType は実際には、まだ使用されていない 1 つの補助プロパティを持つ Label の単なるサブクラスです。IFooNode を実装しています)。
だから私の質問...このタイプのセットアップでは、どうすればFooをフォームデザイナーに表示させることができますか、または少なくともFooが合法であることを認めさせることができますか? これを処理できる Designer 属性はありますか? Foo コントロールが空のボックスとして表示されるかどうかは、まったく気にしません。