Есть ли способ разрешить изменение свойства пользовательского элемента управления только во время разработки? - PullRequest
0 голосов
/ 16 марта 2010

Я посмотрел на атрибут DesignOnly, но, похоже, он не достиг того, чего я хочу *.

По сути, я ищу какой-то способ указать, что какое-то свойство пользовательского элемента управления (скажем, Text) может быть изменено во время разработки, т. Е. Из конструктора Windows Forms в VS (или предположительно из Дизайнер графического интерфейса, который можно использовать для изменения графического интерфейса Windows Forms) - но не во время выполнения. После запуска приложения свойство должно иметь значение readonly.

.

Возможно ли это?

* Когда я добавляю атрибут DesignOnly к свойству, значение, которое я выбираю для этого свойства в режиме конструктора, похоже, не прилипает; свойство просто заканчивается тем, что установлено в коде по умолчанию.

Ответы [ 3 ]

1 голос
/ 16 марта 2010

Вы можете поместить общедоступную статическую переменную в свое приложение, для которой можно установить значение true в методе main () Затем вы можете проверить, установлена ​​ли переменная. Если это так, то программа была запущена нормально, в противном случае мы явно запускаем конструктор.

0 голосов
/ 16 марта 2010

Вы не можете сделать это - конструктор форм VS генерирует код, который выполняется так же, как любой другой код во время выполнения; поэтому вы не можете различить код формы VS и код пользователя. Взгляните на метод InitializeComponent - он запускается так же, как и любой другой код при создании формы.

0 голосов
/ 16 марта 2010

Может быть важно отметить, что поддержка времени разработки - это поддержка времени выполнения. Ваши объекты вращаются в фоновом режиме IDE. Поддержка дизайнера - это просто набор метаданных IDE, который позволяет Visual Studio (или другому разработчику) создавать графическое представление ваших объектов.

Нет "реальной" разницы между временем выполнения и временем разработки. Если вы хотите понять, о чем я говорю, попробуйте добавить NotImplementedException в одно из ваших свойств и попытаться установить его в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...