Какие вещи запускают Visual Studio для восстановления файла *.Designer.cs?

У меня были некоторые проблемы с инициализацией формы, связанные со значениями перезаписи файла.Designer.cs, которые я инициализировал в конструкторе пользовательского элемента управления.

Я разработал компонент (MyUserControl) и вставил его в форму (MainForm). Позже я добавил некоторые инициализации членов в MyUserControlконструктор, но код, который был в MainForm.Designer.cs за InitializeComponent() был устаревшим, и код позже в этой функции переписывал мои новые инициализации из конструктора, вызванного ранее в этой функции.

Итак, по сути, то, что я сделал, вызвало переписывание Mainform.Designer.cs но другие действия не сделали.

Есть хороший справочник, который описывает, когда дизайнер касается файлов *.Designer.cs? (Или это простое правило?) Джаред Пар указал мне на класс DesignerSerializationVisibilityAttribute, но, похоже, это одно дерево в лесу?

1 ответ

Решение

Вы специально стали жертвой наличия кода для старой версии вашего UserControl, все еще встроенного в метод InitializeComponent() формы. Если бы вы удалили элемент управления из формы перед изменением кода элемента управления, у вас не было бы проблемы. Снятие и последующая установка на место также исправили бы это.

Да, это простое правило. InitializeComponent() создается заново каждый раз, когда вы добавляете или удаляете элемент управления из формы.

Другие вопросы по тегам