这是与此问题完全相同的问题:“Could not find type” error loading a form in the Designer
在有人结束我的问题之前,请先阅读一下。你会发现它没有得到真正的答案。我希望从这个问题得到一个完整的答案(而不是解决方法)。
当我创建一个从Control继承并使用泛型的类时,该类无法在设计器中加载。
以下是示例:
class OwnerDrawnListBox<T> : System.Windows.Forms.Control
{
private readonly List<T> _items;
// Other list box private stuff here
public OwnerDrawnListBox()
{
_items = new List<T>();
}
// More List box code
}
然后我在我的设计师中使用它:
private OwnerDrawnListBox<Bag> lstAvailable;
private void InitializeComponent()
{
// Used to be System.Windows.Forms.ListBox();
this.lstAvailable = new ARUP.ScanTrack.Mobile.OwnerDrawnListBox<Bag>();
// Other items
}
如果泛型类是子类(非泛型),那么引用的问题说它工作正常(即如果我做了Class BagOwnerDrawListBox: OwnerDrawnListBox<Bag>
)。
我想知道的是有一种“修复”这个方法,以便设计师接受通用项目吗?
附注:我正在使用Compact Framework。
答案 0 :(得分:0)
据我所知,Windows窗体设计器不支持通用控件。维护设计器支持的唯一方法是使用非泛型子类,就像你说的那样。无论如何,任何“修复”都只是一种解决方法。