public class BaseGenericClass<T> : UserControl {
private T someProperty;
public virtual T SomeProperty {
get {
return someProperty;
}
}
}
Дизайнер форм Visual Studio 2005 и генерик-UserControl'ы
Столкнулся со следующими граблями.
Создаю UserControl как генерик класс. Например вот так:
Код:
Дизайнер форм (для UserControl) вполне его отображает.
Если провести наследование, то, напрмиер, вот этот класс
Код:
public class DerivedClass : BaseGenericClass<int> {
}
}
И хотя компиляция проекта проходит, но дизайнер ни в какую не хочет мне отображать DerivedClass, чтоб я мог всунуть туда пару-тройку контролов мышкой.
Сообщает он о том, что не может загрузить BaseGenericClass.
Я могу, конечно, создавать 2 дерева иерархии, в одном будут негенерик классы, которые будут нужны только за тем, чтоб я мог в дизайнере интерфейс нарисовать, а в другом дереве - генерики, куда я тупо скопирую метод InitializeComponent(), но мне этот путь не нравится...
P.S. Если я перетащу DerivedClass из Тулбокса на реальную форму, то, контрол вполне оторбажается.
Если создаёшь пользовательский контрол, который наследуется от другого контрола, то в MSVS2005 нажимай Add->New Item->Inherited User Control, там в диалоговом окне указываешь родительский контрол...
Цитата: 3A3-968M
Если создаёшь пользовательский контрол, который наследуется от другого контрола, то в MSVS2005 нажимай Add->New Item->Inherited User Control, там в диалоговом окне указываешь родительский контрол...
Знаю-знаю, не вчера за студию сел.
Фишка в том, что он не показывает генерик-предка. Потому элементарно сделал руками =))
В принципе уже не актуально - переделал проект так, что отказался от генериков.
Но всётаки жаль что дизайнер не поддерживает такой возможности...