Я хочу пометить определенные элементы управления в моей форме Windows с помощью атрибутов. Поэтому я добавил атрибут в свой TestAttributes.Designer.cs
:
[AmbientValue(true)]
private System.Windows.Forms.Label label1;
Но всякий раз, когда я изменяю Modifiers
-свойство label1, используя окно свойств дизайнера, дизайнер молча удаляет мой атрибут из объявления:
public System.Windows.Forms.Label label1;
Я попытался поместить объявление в TestAttributes.cs
, чтобы не связываться с файлом .Designer.cs. Но при изменении свойства Modifiers
объявление возвращается к TestAttributes.Designer.cs
, а атрибут исчезает.
Как я могу запретить Дизайнеру удалять мои Атрибуты?
РЕДАКТИРОВАТЬ: лучше задать вопрос: могу ли я навсегда переместить объявление элемента управления из файла *.Designer.cs
, чтобы я мог применить там атрибут? Как я писал выше, в некоторых случаях он возвращается обратно.
Спасибо! богатый
*.Designer.cs
, потому что он автоматически регенерируется дизайнером. Вот почему он скрыт по умолчанию. Во-вторых, не имеет смысла устанавливать значение окружения элемента управленияLabel
наtrue
. Как элемент управления Label может бытьtrue
? При необходимости наследуйте элементы управления и добавляйте необходимые свойства по умолчанию, а затем используйте этот настраиваемый элемент управления в дизайнере. - person Cody Gray   schedule 23.01.2012Label
иAmbientValue
- это только примеры в тестовом приложении, в моем реальном приложении это настраиваемый атрибут. - person richn   schedule 23.01.2012*.Designer.cs
в свои собственные файлы кода. Тогда дизайнер не будет их изменять. Это то же самое, что вы делаете, когда хотите добавить код в методDispose
по умолчанию. Если вы знаете, что это плохо/не работает, все равно непонятно, зачем вы это делаете. - person Cody Gray   schedule 23.01.2012*.Designer.cs
в свой собственный файл кода. Но он возвращается к*.Designer.cs
, и мой атрибут теряется, когда я изменяю свойствоModifiers
. - person richn   schedule 23.01.2012