Как повторно синхронизировать конструктор Windows Forms Visual Studio 2008? - PullRequest
2 голосов
/ 11 января 2011

У меня есть проект C # Windows Form, и при открытии проекта в окне конструктора неожиданно отображалась пустая форма. Не уверен, что вызвало это, но, похоже, это произошло с тех пор, как я добавил сторонний элемент управления на панель инструментов. Код дизайнера все еще там, и когда я запускаю приложение, все элементы управления работают нормально. У кого-нибудь есть идеи, как я могу повторно синхронизировать конструктор форм, чтобы он правильно отображал элементы управления. Это относительно простая форма, которую я мог бы легко воспроизвести, но я чувствую себя немного взволнованным по поводу того, что происходит что-то более сложное.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 11 января 2011

Класс Form предоставляет свойство с именем DesignMode, которое сообщает вам, находитесь ли вы внутри VS или запускаете ли вы приложение.Обычно я делаю это в своих формах, чтобы избежать дерьма VS:

public MyForm()
{
   InitializeComponents();
   if (this.DesignMode)
   {
      return;
   }
}

Конечно, чтобы увидеть разницу, вам нужно перестроить проект и закрыть все окна VS

0 голосов
/ 12 января 2011

См. Мой комментарий к вопросу, но в двух словах: метод InitializeComponent () в * .Designer.cs нельзя переименовывать, иначе дизайнер не сможет отобразить вашу форму.

0 голосов
/ 11 января 2011

Сторонние элементы управления могут определенно сломать конструктор.См. мой вопрос о проблемах, возникших у меня с Outline документа, которые были вызваны ошибочным сторонним контролем.

Я бы предложил вам поискать в вашем проекте ссылки на потенциально нарушающий контроль элемент.Если вы попытались добавить элемент управления в какой-то момент, и добавление не удалось, возможно, остались некоторые остатки, которые теперь портят конструктор.Убедитесь, что вы также ищете в файле .designer - именно там элементы управления обычно создаются.

Если это не сработает, я попытаюсь удалить элемент управления из Visual Studio.

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