代码之家  ›  专栏  ›  技术社区  ›  NightOwl888 Jabrwoky

Visual Studio 2005 Windows窗体设计器-“对象引用未设置为对象的实例”

  •  0
  • NightOwl888 Jabrwoky  · 技术社区  · 16 年前

    我有一个Windows窗体,我正在添加一些新功能。表单上大约有100个控件。我在查看“属性”下拉列表时发现,表单中有几十个控件没有任何用途,在“属性”窗口中选择这些控件时,它们在表单上不可见。

    .designer 手动归档并小心地从代码中删除它们。在我删除最后一个“未标识”控件之前,这似乎工作得很好,现在在设计视图中打开窗体时出现了上面所述的错误。

    这个项目仍然编译和运行良好,它只是在设计视图我得到这个错误。不幸的是,这使得将来更新此表单非常困难。下面是完整的错误消息。

    加载设计器时遇到一个或多个错误。错误如下所示。有些错误可以通过重建项目来修复,而有些错误可能需要更改代码。

    隐藏

    在System.Reflection.Assembly.\u nLoad(AssemblyName文件名、字符串代码基、证据assemblySecurity、Assembly locationHint、StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean用于内省) 在System.Reflection.Assembly.nLoad(AssemblyName文件名、字符串代码基、证据assemblySecurity、Assembly locationHint、StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean用于内省) 在System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef、Evidence assemblySecurity、StackScrawlMark&stackMark,用于自省的布尔值) 在System.Reflection.Assembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackScrawlMark&stackMark,用于自省的布尔值) 在System.Reflection.Assembly.Load(字符串assemblyString) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get\u Assembly()上 在Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName、String typeName、Boolean ignoreTypeCase、Assembly&程序集,字符串描述) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchNormalEntries(AssemblyName AssemblyName、String typeName、Boolean ignoreTypeCase、Assembly&程序集,布尔快速搜索) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchEntries(AssemblyName AssemblyName、String typeName、Boolean ignoreCase、Assembly&程序集,引用类型(refType) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchEntries(AssemblyName AssemblyName、String typeName、Boolean ignoreTypeCase、Assembly&装配) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.System.ComponentModel.Design.ITypeResolutionService.GetType(字符串typeName,布尔throwOnError,布尔ignoreCase) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.System.ComponentModel.Design.ITypeResolutionService.GetType(字符串名称,布尔throwOnError) 在System.CodeDom.CodeMemberMethod.get\u语句() 在System.ComponentModel.Design.Serialization.CodeDomainDesignerLoader.PerformLoad(IDesignerSerializationManager) 位于Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager序列化管理器) 在System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost主机)

    不幸的是,无论是错误消息还是在VisualStudio2005设计器中打开文件,都没有指出文件中哪一行可能出错—只是这个非常模糊的错误消息。

    我会在这里发布导致错误的代码,但是它占用了大约100000个字符,这里的限制是30000个。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    14 年前

    我备份了设计器代码,然后从 SourceSafe . 然后我关闭窗体的设计视图,关闭visualstudio,重新打开visualstudio,并将设计器代码粘贴回。完成后,我可以双击我的窗体来查看它。

    我仍然不确定是什么原因导致了错误,但是做了上面的操作就修复了它。奇怪的。

        2
  •  0
  •   Thickwaistedman    8 年前

    可能是您删除了一些控件,但UI留下了包含Handles标记的事件脚本,这将导致此问题。具有无效控件名称的handles标记将导致忽略并继续。我只需遍历代码并尝试查找与现有控件不对应的句柄。