Visual Studio 2005 Windows Forms Designer - «Ссылка на объект не установлена ​​для экземпляра объекта» - PullRequest
0 голосов
/ 14 июня 2010

У меня есть форма Windows Forms, к которой я добавляю некоторые новые функции.Форма имеет около 100 элементов управления.Просматривая раскрывающийся список «Свойства», я обнаружил, что в форме было несколько десятков элементов управления, которые не имели никакого смысла и не были видны в форме, когда они были выбраны в окне свойств.

Я не смог найтипростое решение для удаления этих «невидимых» элементов управления с помощью поиска, поэтому я решил открыть файл .designer вручную и осторожно удалить их из кода.Казалось, что это работало нормально, пока я не удалил последние «неопознанные» элементы управления, и теперь у меня есть ошибка, указанная выше при открытии формы в режиме конструктора.

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

Обнаружена одна или несколько ошибок при загрузке конструктора.Ошибки перечислены ниже.Некоторые ошибки можно исправить, перестроив ваш проект, тогда как другие могут потребовать изменения кода.

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

в System.Reflection.Assembly._nLoad (имя_файла_сборки, строковое codeBase, свидетельство AssemblySecurity, расположение сборкиHint, StackCrawlMark & ​​stackMark, логическое значение throwOnFileNotFound, логическое значение forIntrospection) в System.RefnameLameName (сборка.codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark & ​​stackMark, логическое значение throwOnFileNotFound, логическое значение forIntrospection) в System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evidence AssemblySecurity, StackCrawlMark & ​​stackMarkSignInning.ringOringingOppingOring,Доказательства assemblySecurity, StackCrawlMark & ​​stackMark, Boolean forIntrospection) в System.Reflection.Assembly.Load (String assemblyString) в Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly (StringSignSignSignSigndio.SiWisionSignedStudioSudioSudioSudio)., String typeName, логическое игнорированиеTypeCase, Assembly & Assembly, String description) в Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchNormalEntries (AssemblyName assemblyName, Строковое имя-типа, логическое значение ignoreTypeCase, Assembly & Assembly, логический fastSearch) в Microsoft.VisNualSame типа сборки-сборки-сборки (), Boolean ignoreCase, Assembly & Assembly, ReferenceType refType) в Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchEntries (AssemblyName assemblyName, Строка typeName, Булево игнорирование ignoreTypeCase, Сборка и сборка) в Microsoft.VisualStuser.GetType (String typeName, Boolean throwOnError, Boolean ignoreCase) в Microsoft.VisualStudio.Design.VSTypeResolutionService.System.ComponentModel.Design.ITypeResolutionService.GetType (имя строкире (String ComponentName, CodeTypeDeclaration codeTypeDecl, ITypeResolutionService погрузчик, IDictionary и кэш) на Microsoft.VisualStudio.Design.Serialization.CodeDom.HandlesClauseManager.ParseHandlesClauses (CodeTypeDeclaration codeTypeDecl, Boolean updateCache) в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnMethodPopulateStatements (Отправитель объекта, EventArgs e) в System.CodeDom.CodeMemberMethod.get_Statements () в System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize (объявление IDesignerSerializationManager, объявление CodeTypeDeclaesesDerignerSerignSignerMerignerSignerSignerSignerMo.Component.Component.Component.Component.Component.Component.Component.Component.Component.ComPort)в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad (serialesManager IDesignerSerializationManager) в System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLeader

* *открытие файла в конструкторе Visual Studio 2005 указывает, какая строка может быть ошибочной в файле - только это очень неоднозначное сообщение об ошибке.

Я бы опубликовал код, вызывающий ошибку, но он занимает около 100 000символы и ограничение здесь составляет 30 000.

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Я скопировал свой дизайнерский код, а затем откатился с SourceSafe . Затем я закрыл представление формы для своей формы, закрыл Visual Studio, снова открыл Visual Studio и вставил свой дизайнерский код обратно. После этого я мог дважды щелкнуть форму, чтобы просмотреть ее.

Я до сих пор не уверен в том, что вызвало ошибку, но исправление было сделано выше. Weird.

0 голосов
/ 25 июля 2018

Возможно, вы удалили некоторые элементы управления, но пользовательский интерфейс оставил скрипт события, включающий тег Handles, что могло бы вызвать это.Тег дескриптора с недопустимым именем элемента управления приведет к игнорированию и продолжению.Я просто иду по коду и пытаюсь найти дескрипторы, которые не соответствуют существующему элементу управления.

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