Страница: 1 |
Страница: 1 |
Вопрос: Наследование абстрактных (MustInherit) UserControl
Добавлено: 21.12.07 17:13
Автор вопроса: Shota
B]Ситуация:[
Нужно создать группу UserControl-ов которые имеют в основном общее поведение, но кое в чем отличаются.
Если создать базовый класс BaseControl наследующий от UserControl и унаследовать от него ChildControl то все работает, как только я определяю BaseClass как MustInherit ( abstract ) DesignView умирает...
Вопрос:
Как унаследовать абстрактный класс, чтоб при этом сохранить возможность проэктировать контрол в режиме Конструктора?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 21.12.07 23:43
Shota, дело в том, что абтрактный класс не может иметь своих экземпляров. А следовательно проектировать что-то в режиме конструктора в нем нельзя. Потому что у него просто напросто нет его.
Пожалуйста, разъясните свою проблему более широко
Номер ответа: 2
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #2
Добавлено: 24.12.07 09:39
Мой проект на C#, поетому пишу в терминах C# ( я думаю смысл не меняется )
На основании текстового описания контролов создается интерфейс. Контролы нескольких видов.
У всех контролов есть свойства:
Value
ReadOnly
Required
....
Где реализация Caption у всех одинаковая, а остальные свойства для каждого контрола свои. Поэтому я написал базовый класс BaseControl, где реализовал свойства Caption, а остальные свойства объявил как abstract. таким образом и сам базовый класс должен стать abstract........
Вот тут то и загвоздка....... как только базовый класс становится абстрактным, DesignView у наследников умирает.
Выкрутился я следующим образом:
Реализовал Caption в базовом не абстрактном классе
Объявил интерфейс со всеми вышеперечисленными свойствами
Все наследники наследуются из BaseControl и реализуют интерфейс IMyControl.........
Просто остается возможность создать экземпляр BaseControl, что в принципе не имеет смысла.
Номер ответа: 3
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #3
Добавлено: 24.12.07 19:49
Объявил интерфейс со всеми вышеперечисленными свойствами
Все наследники наследуются из BaseControl и реализуют интерфейс IMyControl.........
Номер ответа: 4
Автор ответа:
Shota
Вопросов: 22
Ответов: 52
Профиль | | #4
Добавлено: 25.12.07 09:28
Так и сделаю........ спасибо.