Designer не создает код для свойства вложенного элемента управления. Почему?

Я создал SubCtrl, наследующий UserControl. У него нет кода. Затем я создал Ctrl, который также наследует UserControl. В нем есть SubCtrl, и его единственный код означает, что он открыт для всех, поэтому он появляется в списке свойств Ctrl:

public subctrl.SubCtrl SUBCTRL
{
    get { return this.subCtrl1; }
}

Затем я создал простой проект Form, в котором есть только Ctrl и нет кода. Как я и хотел, SUBCTRL появляется в списке свойств Ctrl, поэтому я могу что-то изменить. Я изменил цвет фона (скажем, на красный), и в дизайнере сабктрл стал красным.

Но волшебным образом, когда я запускаю проект, он снова становится стандартным серым. Похоже, что в Form1.Designer.cs не создается код для изменения цвета фона SUBCTRL на красный. Если я напишу это вручную, это сработает, но это не то, чего я хочу. Это должно быть автоматически, очевидно.

С другой стороны, Ctrl ведет себя нормально. Код сгенерирован и все работает счастливо.

Что не так с субконтролем?


person Gabriel    schedule 13.09.2010    source источник


Ответы (1)


Добавьте [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] к свойству.

person SLaks    schedule 13.09.2010
comment
Лаконично и эффективно. Здравствуй \о/! - person Gabriel; 13.09.2010