Можно ли запретить представлению дизайна SharpDevelop устанавливать значение свойства в InitializeComponent?
Я считаю, что Design View (DV) - это хорошо, но я пытаюсь изменить способ, которым он автоматически внедряет код в InitializeComponent
очень трудно. И иногда его автоматический код нарушает работу программы.
Например, DV автоматически видит каждое свойство моего пользовательского элемента управления UserControl, а затем присваивает каждому свойству какое-либо значение в InitializeComponent
, Но я не хочу, чтобы он присваивал значения некоторым свойствам, потому что некоторые из моих установщиков будут генерировать исключение времени выполнения, если они не используются правильно. Я мог исправить InitializeComponent
вручную, но каждый раз, когда я изменяю дизайн, SharpDevelop просто восстанавливает функцию снова.
И есть еще один случай, когда у меня есть конструктор по умолчанию установить размер на основе определенных факторов, но затем InitializeComponent
немедленно установит другое статическое значение.
Как я могу сказать DV не назначать значения автоматически определенным свойствам, которые я определяю?
1 ответ
Если я не понял ваш сценарий, похоже, что вы лаете не на то дерево, пытаясь изменить или перенастроить поведение SharpDevelop. Даже если вам удастся изменить его, вы не будете влиять на поведение Visual Studio и не поможете другим пользователям вашего пользовательского элемента управления, которые не (или не хотят) настраивать их. дизайнер соответственно.
Вместо этого кажется, что вы должны просто пометить свойства, предоставляемые вашим пользовательским элементом управления, [DesignerSerializationVisibility]
атрибут Это указывает разработчику, как именно значение этого свойства должно быть сериализовано в InitializeComponent
метод.
У вас есть выбор из трех разных значений:
Visible
указывает, что значение для свойства должно быть сохранено в коде инициализацииHidden
указывает, что значение для свойства не должно сохраняться в коде инициализацииContent
указывает, что код инициализации должен генерироваться для каждого открытого (не скрытого) свойства объекта, назначенного свойству
Значением по умолчанию является Visible
, что вызывает сериализацию значения свойства при любой возможности.