Я добавил этот комментарий к другому вопросу, но так как он связан с этим, он снова.
Когда пользовательский элемент управления не загружается в конструктор Visual Studio, вот что вам нужно сделать. Эти инструкции для проекта vb.net, но c # должен быть похожим. Кроме того, перед этим закройте все открытые окна (или, по крайней мере, исходные и дизайнерские файлы элемента управления, над которым вы работаете.)
И последнее. Первое, что вы должны сделать, это убедиться, что перезапуск Visual Studio не решит проблему. Если нет, вы можете попробовать следующие шаги. Эти инструкции предполагают, что ошибочные пользовательские элементы управления находятся в проекте библиотеки элементов управления в Visual Studio. Если нет, то вы должны немного отрегулировать направления, чтобы заставить его работать, но гораздо проще, когда элемент управления находится в своем собственном проекте.
Выполните следующие действия:
- Сделайте управляющую библиотеку вашим проектом запуска.
- Откройте свойства для проекта библиотеки управления и нажмите на вкладку отладки.
- В разделе «Действие запуска» выберите параметр «Запустить внешнюю программу» и найдите исполняемый файл Visual Studio.
ПРИМЕЧАНИЕ: это означает, что когда вы запускаете свое решение, оно запускает другой экземпляр Visual Studio вместо фактического запуска вашего решения. Первый экземпляр Visual Studion (INSTANCE_1) будет «размещать» второй экземпляр Visual Studio (INSTANCE_2) при его запуске.
- Запустите ваше решение. INSTANCE_2 загрузится.
- Переключиться обратно на INSTANCE_1.
- В INSTANCE_1 нажмите CTRL-ALT-E. Это откроет диалоговое окно исключений. Установите флажок В столбце THROWN рядом с Общим языковым исключением времени выполнения.
ПРИМЕЧАНИЕ. Это гарантирует, что INSTANCE_1 будет BREAK при ЛЮБОЙ ошибке времени выполнения, даже если он попадет в блок try.
- Переключиться на INSTANCE_2. В Solution Explorer дважды щелкните, чтобы открыть ошибочный пользовательский элемент управления.
Вы должны обнаружить, что INSTANCE_1 OF Visual Studio должен был остановиться на строке кода, из-за которой конструктор не загружал элемент управления. Исправьте код (который обычно означает тестирование для IsNot Nothing, прежде чем ссылаться на свойства объекта ..., но может означать и другие вещи.)
Кроме того, иногда я обнаруживаю, что элемент управления будет загружаться в INSTANCE_2 вместо ошибки в INSTANCE_1. В этом случае просто прекратите отладку ... закройте INSTANCE_2. Сохраните / перезапустите INSTANCE_1, и ваша проблема часто исчезнет.
Урок такой. Пользовательский элемент управления ДОЛЖЕН иметь возможность загружать / ссылаться на все объекты и их элементы, чтобы загрузить его в конструктор. Поэтому для пользовательских элементов управления, которые будут помещены в другие контейнеры, я обычно создаю события для уведомления родителя, а не для того, чтобы пытаться вставить объекты в дочерний элемент управления.
Надеюсь, что это поможет для дальнейшего использования этого старого вопроса.
Сет