Проблема в том, что DefaultValueAttribute
только сообщает конструктору , какое значение по умолчанию для свойства.Он контролирует, отображается ли свойство в полужирном , и к чему возвращается значение, когда вы щелкаете правой кнопкой мыши по свойству и выбираете «Сброс» в контекстном меню.
Что это not do - установить свойство для определенного значения во время выполнения.Для этого вам нужно поместить код в метод конструктора вашего пользовательского элемента управления.Например:
// set default visibility
this.removeButton.Visible = true;
В противном случае, как вы описали, значение свойства будет сброшено при перестройке проекта.Он будет отображаться в полужирном в окне «Свойства» конструктора, поскольку он не соответствует значению по умолчанию (как указано в DefaultValueAttribute
), но этот атрибут не меняет установленное значениек.