Это точно такой же вопрос, как этот: Ошибка «Не удалось найти тип» при загрузке формы в 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.