Ошибка «Не удалось найти тип» при загрузке формы в Designer - PullRequest
2 голосов
/ 04 января 2010

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

1 Ответ

0 голосов
/ 04 января 2010

Насколько мне известно, дизайнер Windows Forms не поддерживает общие элементы управления.Единственный способ поддерживать дизайнерскую поддержку - это использовать неуниверсальный подкласс, как вы сказали.В любом случае, любое «исправление» будет просто обходным путем.

...