| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Проблема с наследованием свойств |
| Автор: Voyager 30.3.2007, 10:02 | ||||
| Есть форма FormA и FormB. На форме FormA есть компонет, допустим, PanelControl (public). Форма FormB наследуется от FormA (FormB : FormA). У PanelControl в форме FormA свойства
Почему после наследования в FormB (если делать какие-либо изменения в дизайнере) свойства PanelControl становятся:
То есть свойства переписываются заново (копируются из FormA), а не наследуются по умолчанию (точнее наследуются вначале, но после изменений в дизайнере, например, размера, переписываются). Что это - особенность студии или что-то еще? Ведь если изменить в форме FormA свойства панели, то они не отобразятся в FormB, какое же тут наследование, может кто объяснить? |
| Автор: Naum 30.3.2007, 10:23 |
| Насколько я знаю, наследование не подразумевает установку значений свойств и полей. Для установки значений свойств и полей в конструкторе класса-потомка нужно вызывать конструктор класса-предка. А еще, для того, чтобы дизайнер знал, какие значения у свойтсв по умолчанию, нужно такие свойства пометить аттрибутом DefaultValue() |
| Автор: Voyager 30.3.2007, 10:31 |
| Но если я использую просто компоненты и изменяю их свойства, зачем мне ставить DefaultValue, дело не совсем в этом, дело в том, что в наследуемой форме студия "копирует" свойства из базовой формы. |
| Автор: mr.DUDA 30.3.2007, 18:30 |
| Можно попробовать поставить Modifier=protected для всех наследуемых свойств. В отдельных случаях это помогает избежать дублирования кода в InitializeComponent. |