2009-06-23 3 views
5

Недавно я бросил некоторый код C#, чтобы внести некоторые незначительные косметические изменения. Когда я открываю некоторые файлы в Visual Studio, хотя, я получаю сообщение об ошибке сказав:Использование конструктора Visual Studio - «Ссылка на объект, не установленная на экземпляр объекта» (Visual Studio 2008)

Чтобы предотвратить возможную потерю данных ...

Первый из этих ошибок:

Ссылка на объект не установлена ​​в экземпляр объекта.

Я могу отслеживать следы стека, но я не уверен, что я действительно должен искать в этой ситуации. Кроме того, конец моей трассировки стека имеет вызов, который заканчивается на «PageScroller..ctor()».

Основываясь на небольшом исследовании Google, я предполагаю, что это означает вызов конструктора. Это правда?

ответ

4

У вас есть ошибка в режиме разработки для некоторого настраиваемого элемента управления, вероятно, PageScroller и, по-видимому, начиная с конструктора. Возможно, в конструкторе есть код, который возвращает null в режиме проектирования, а значение null не проверяется.

+1

Общепринято (или, по крайней мере, приемлемо) в мире C# иметь несколько страниц, где они работают нормально, но они не доступны для просмотра в дизайнере? Кажется, что большая часть страницы, на которую я смотрю, выполняет функцию, просто не появляется в дизайнере. В целом, мне было бы легче исправить ситуацию, поэтому мне не нужно было бы изучать интерфейс дизайнера, но я хотел знать, будет ли это считаться «плохой практикой» – Kivus

+0

Нет, это неприемлемо, по крайней мере, не для меня , Для каждого элемента управления нет необходимости иметь обширную поддержку Designer, но она должна быть доступна, по крайней мере, для _показать страницу в дизайнере, задать свойства и сохранить страницу и сохранить свойства. –

+0

Отлично. Спасибо вам за помощь. – Kivus

2

Я иногда вижу проблемы, подобные этому. Я начал перемещать код из конструктора в событие загрузки, и это помогло.

0

Убедитесь, что автогенерируемая

InitializeComponent(); 

метод вызывается, прежде чем пытаться ссылаться на любой объект, созданный в конструкторе.

Смежные вопросы