System.ComponentModel.Design.ExceptionCollection
Я использую элемент управления ленты, расположенный на CodePlex, и следую инструкциям, расположенным здесь. Как только я добавляю ссылку и правильный код в конструктор, я получаю эту ошибку при попытке просмотреть форму:
Исключение типа 'System.ComponentModel.Design.ExceptionCollection' было сгенерировано
И я не могу понять, что я делаю неправильно. Кто-нибудь работал с этим элементом управления и знаете, как решить эту проблему?
6 ответов
Интересно; Я только столкнулся с той же самой проблемой с одной из моих собственных форм; вот как я нашел ваш актуальный и недавний вопрос.
Вот как я это решил:
- Откройте два экземпляра Visual Studio. Откройте один и тот же проект в обоих.
- В одном случае, перейдите к Debug->Exceptions и включите все опции Thrown, чтобы остановить при первом же исключении. Это остановит отладчик, когда будет сгенерировано исключение.
- В том же экземпляре выберите "Отладка" -> "Присоединить к процессу", выберите devenv.exe.
- В другом случае откройте форму, чтобы вызвать исключение
- Если повезет, первый экземпляр должен остановиться где-нибудь, что приведет к более значимому исключению.
В моем случае это оказалось чем-то, что я должен был обусловить:
if (!DesignMode)
{
// Do something that should only happen at runtime
}
Не забудьте выключить все эти опции "Брошенные" позже.
Обходной путь для меня был:
- Щелкните правой кнопкой мыши на форме и "Просмотр кода"
- Сохраните код загруженным в редакторе и попробуйте снова просмотреть конструктор.
Это выглядит очень странно, и я не могу подтвердить, является ли это проблемой с моим кодом (так как я работаю над совершенно новой базой кода) или это ошибка VS2012. Если я узнаю, я сообщу.
Поскольку решение, предложенное pilotcam, у меня не сработало, я выбрал другой подход:
- Сделайте SVN-фиксацию для файла.
- Откройте файл "*.designer.cs" в форме, которая показывает ошибку в представлении источника.
- Удалите большие блоки объявлений элементов формы.
- Исправьте все ошибки компиляции с помощью ReSharper (т.е. убедитесь, что на боковом индикаторе больше ничего нет красного).
- Сохраните файл. Нет необходимости компилировать.
- Откройте конструктор Windows Forms формы.
- Если ошибка по-прежнему появляется, выполните возврат SVN, чтобы вернуться в исходное состояние.
- Повторяйте шаги с 2 по 7, пока ошибка не исчезнет.
- Теперь вы обвели ошибочный дочерний элемент управления, который вызывает ошибку.
- Повторите шаги 2-7 с меньшим количеством элементов управления, которые вы удаляете, пока у вас не останется только один элемент управления.
В моем случае это был пользовательский элемент управления внутри группового элемента управления внутри элемента управления вкладками, поэтому я сначала определил элемент управления вкладкой, затем элемент управления группой и затем пользовательский элемент управления.
Вы можете изолировать пользовательский элемент управления в новой форме для дальнейшего изучения. В моем случае это было довольно легко; Я установил проверки режима разработки вокруг большинства функций внутри моего элемента управления, чтобы гарантировать выполнение кода, только если элемент управления не находится в режиме разработки.
Это исправило мою ошибку.
У меня была та же самая проблема, и ни один из вышеупомянутых ответов не решил проблему.
В конце концов, очистка папки "bin" и перестройка сработали для меня.
[ReadOnly(true)]
[Browsable(false)]
Прежде всего свойства работали для меня
Позвольте мне добавить еще два случая, когда такое исключение может произойти, наряду с тем, когда элемент управления пытается сделать что-то, что не разрешено в режиме разработки:
- Когда невозможно скомпилировать пользовательский элемент управления.
- Когда код конструктора содержит несколько похожих (или идентичных) строк с инициализацией одних и тех же элементов управления или свойств, это может легко произойти при слиянии.
Все эти случаи приводят к одному и тому же чрезвычайно значимому сообщению об ошибке, и в этом конкретном случае две отладки Visual Studio не помогут, поэтому я просто закончил разделение моего конструкторского кода.