Ошибка дизайнера Visual Studio - PullRequest
2 голосов
/ 31 октября 2008

Я получаю эту ошибку на компактной платформе.

"Генерация кода для свойства inputControl завершилась неудачно. Ошибка:« ссылка на объект не установлена ​​на экземпляр объекта. »

Кто-нибудь знает, почему? Это только началось и никогда не было проблемой прежде.

Ответы [ 2 ]

3 голосов
/ 04 июня 2009

Когда пользовательский элемент управления не загружается в конструктор Visual Studio, вот что вам нужно сделать. Эти инструкции предназначены для проекта vb.net, но c # должен быть похожим. Кроме того, перед этим закройте все открытые окна (или, по крайней мере, исходные и дизайнерские файлы элемента управления, над которым вы работаете.)

И последнее. Первое, что вы должны сделать, это убедиться, что перезапуск Visual Studio не решит проблему. Если нет, вы можете попробовать следующие шаги. Эти инструкции предполагают, что ошибочные пользовательские элементы управления находятся в проекте библиотеки элементов управления в Visual Studio. Если нет, то вы должны немного отрегулировать направления, чтобы заставить его работать, но гораздо проще, когда элемент управления находится в своем собственном проекте.

Выполните следующие действия:

  1. Сделайте библиотеку управления вашим проектом запуска.
  2. Откройте свойства для проекта библиотеки управления и нажмите на вкладку отладки.
  3. В разделе «Действие запуска» выберите параметр «Запустить внешнюю программу» и найдите исполняемый файл Visual Studio.

ПРИМЕЧАНИЕ: это означает, что когда вы запускаете свое решение, оно запускает другой экземпляр Visual Studio вместо фактического запуска вашего решения. Первый экземпляр Visual Studion (INSTANCE_1) будет «размещать» второй экземпляр Visual Studio (INSTANCE_2) при его запуске.

  1. Запустите ваше решение. INSTANCE_2 загрузится.
  2. Переключиться обратно на INSTANCE_1.
  3. В INSTANCE_1 нажмите CTRL-ALT-E. Это откроет диалоговое окно исключений. Установите флажок В столбце THROWN рядом с Общими исключениями времени выполнения языка.

ПРИМЕЧАНИЕ. Это гарантирует, что INSTANCE_1 будет BREAK при ЛЮБОЙ ошибке времени выполнения, даже если он попадет в блок try.

  1. Переключиться на INSTANCE_2. В Solution Explorer дважды щелкните, чтобы открыть ошибочный пользовательский элемент управления.

Вы должны обнаружить, что INSTANCE_1 OF Visual Studio должен был остановиться на строке кода, из-за которой конструктор не загружал элемент управления. Исправьте код (который обычно означает тестирование для IsNot Nothing, прежде чем ссылаться на свойства объекта ..., но может означать и другие вещи.)

Кроме того, иногда я обнаруживаю, что элемент управления будет загружаться в INSTANCE_2, а не прерываться при ошибке в INSTANCE_1. В этом случае просто прекратите отладку ... закройте INSTANCE_2. Сохраните / перезапустите INSTANCE_1, и ваша проблема часто исчезнет.

Урок такой. Пользовательский элемент управления ДОЛЖЕН иметь возможность загружать / ссылаться на все объекты и их элементы, чтобы загрузить его в конструктор. Поэтому для пользовательских элементов управления, которые будут помещены в другие контейнеры, я обычно создаю события для уведомления родителя, а не для того, чтобы пытаться вставить объекты в дочерний элемент управления.

Надеюсь, что это поможет для дальнейшего использования этого старого вопроса.

Сет

2 голосов
/ 31 октября 2008

Посмотрите, где изначально вызывается inputControl, и убедитесь, что он правильно создается.

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