如果 Windows 窗体设计器由于代码、第三方组件或其他位置的错误而未能加载,将显示错误页而不是设计器。 此错误页不一定表示设计器中的 bug。 bug 可能位于代码隐藏文件中的某个位置。 错误显示在可折叠的黄色栏中,其中带有用于跳转到代码页上错误位置的链接。
将为每个错误创建黄色可折叠栏,并按说明进行分组。 该栏描述阻止设计器加载属性的编译器错误。 其中包含以下详细信息:
黄色错误栏展开后,会列出错误的每个实例。 许多错误采用以下格式包含确切位置:<项目名称><窗体名称>?行:<行号>?列:<列号>。 如果调用堆栈与错误关联,则可选择“显示调用堆栈”链接以进行查看。 检查调用堆栈可能会进一步帮助你解决错误。
如果提供了针对错误的帮助文章,请选择“MSDN 帮助”链接,直接导航到帮助页。
选择“在 MSDN 论坛中搜索与此错误相关的帖子”链接,以导航到旧的 Microsoft 开发人员网络论坛。 你可能想要在?Microsoft Q&A?或?StackOverflow?论坛上搜索或提问
此部分列出了可能会遇到的一些错误,如下:
最常见的情况是,当删除或重命名设计器文件引用的代码隐藏文件中的事件处理程序时,你会看到此错误。 打开?<form>.designer.<langauge>?代码文件并从窗体或控件中删除事件处理程序。
此错误指示字段、方法、事件或对象未正确命名。
你为项目中已存在的继承窗体指定了名称。 若要更正此错误,请为继承窗体提供唯一名称。
第三方设计器尝试访问工具箱上不存在的选项卡。 请联系组件供应商。
Visual Studio 尝试加载为文件类型注册的设计器,但无法加载。 这很可能是由于安装过程中发生了错误。 请联系你用于修补程序的语言的供应商。
此错误是第三方组件的问题。 请联系组件供应商。
第三方设计器请求 Visual Studio 创建对象,但对象引发错误。 请联系组件供应商。
如果尝试打开已在另一个编辑器中打开的文件,则会出现此错误。 会显示已打开文件的编辑器。 若要更正此错误,请关闭打开文件的编辑器,然后重试。
关闭设计器,然后重新打开才能使更改生效。 通常,Visual Studio 会在进行更改后自动重新加载设计器。 但是,其他设计器(如第三方组件设计器)可能不支持重新加载行为。 在这种情况下,Visual Studio 会提示你手动关闭并重新打开设计器。
此消息类似于“另一个编辑器以不兼容的模式打开了‘<文档名称>’”,但 Visual Studio 无法确定文件名。 若要更正此错误,请关闭打开文件的编辑器,然后重试。
在设计器分析的代码块中,Visual Studio 仅支持单维数组。 多维数组在此区域之外有效。
尝试打开无法打开的文件时,会出现此错误消息。 请验证该文件存在并且是有效程序集。
此错误是第三方组件的问题。 请联系组件供应商。
Visual Studio 在工具箱不可用时对其进行了调用。 如果看到此错误,请使用报告问题来记录问题。
尝试将事件连接到从基类继承的控件时,通常会出现此错误。 如果控件的成员变量是私有变量,则 Visual Studio 无法将事件连接到方法。 私有继承控件不能绑定额外的事件。
Visual Studio 尝试将事件处理程序添加到设计器中没有成员变量的组件。 请联系组件供应商。
此错误是 Visual Studio 序列化程序中的内部错误。 它指示序列化程序尝试对一个对象命名两次,此操作不受支持。 如果看到此错误,请使用报告问题来记录问题。
继承的控件由其继承类所拥有。 必须在控件的起源类中更改继承的控件。 因而无法重命名或销毁它。
设计器尝试引用特定工具箱选项卡上的类,但该类不存在。 请联系组件供应商。
第三方设计器要求 Visual Studio 在不存在的构造函数中创建具有特定参数的对象。 请联系组件供应商。
此错误是错误的泛型包装器。 此消息附带的错误字符串会提供有关错误消息的更多详细信息,并提供指向更具体帮助文章的链接。 若要更正此错误,请解决追加到此错误的错误消息中指定的错误。
此消息与窗体上加载或放置的组件中的错误相关。 它指示组件未将自己添加到其容器控件(无论是其他控件还是窗体)。 设计器会继续工作,但组件在运行时可能会出现问题。
若要更正错误,请联系组件供应商。 或者,如果是创建的组件,请在组件构造函数中调用?IContainer.Add
?方法。
尝试将组件重命名为空值时,会出现此错误。
此错误可能是由于两种情形导致的。 第三方组件供应商分发的控件或组件有问题,或者你编写的代码在组件之间具有递归依赖项。
若要更正此错误,请确保代码没有递归依赖项。 如果不存在此类问题,请记下错误消息的确切文本并联系组件供应商。
错误消息:“找不到类型‘<类型名称>’。 请确保已引用包含此类型的程序集。 如果此类型为开发项目的一部分,请确保已成功生成该项目。”
发生此错误是因为找不到引用。 请确保引用错误消息中指示的类型,并且还引用了该类型所需的所有程序集。 通常,问题是解决方案中的控件未生成。 若要生成,请从“生成”菜单中选择“生成解决方案”。 否则,如果控件已生成,请从解决方案资源管理器中“引用”或“依赖项”文件夹的右键单击菜单中手动添加引用。
Visual Studio 尝试关联事件处理方法,但找不到该方法的一个或多个参数类型。 此错误通常是由于缺少引用导致的。 若要更正此错误,请将包含类型的引用添加到项目,然后重试。
Visual Studio 中继承表单的模板不可用。 如果看到此错误,请使用报告问题来记录问题。
Visual Studio 尝试创建事件处理程序,但事件类型有问题。 如果事件是通过不符合 CLS 的语言所创建,则可能会发生此错误。 请联系组件供应商。
出现此错误的原因是成员变量已声明两次(例如,在代码中声明了两个名为?Button1
?的控件)。 名称必须在继承表单间唯一。 此外,名称不能仅通过大小写来区分。
如果项目中存在错误的 .resx 文件,则可能会发生此错误。
若要更正该错误,请执行以下操作:
如果对于默认区域性,项目中存在错误的 .resx 文件,则可能会发生此错误。
若要更正该错误,请执行以下操作:
错误消息:“未能分析方法‘<方法名称>’。 分析器报告以下错误:‘<错误字符串>’。 请查看任务列表以了解潜在的错误。”
这是针对分析过程中出现的问题的常规错误消息。 这些错误通常是由于语法错误导致的。 有关与错误相关的特定消息,请参阅任务列表。
你尝试将组件重命名为对该语言无效的值。 若要更正此错误,请命名组件,使其符合该语言的命名规则。
使用?partial?关键字在多个文件中定义类时,在每个文件中只能有一个分部定义。
若要更正此错误,请从文件中移除类的所有分部定义(只保留一个)。
此错误类似于“找不到类型‘<类型名称>’”,但发生此错误通常是由于元数据属性。 若要更正此错误,请检查是否引用了属性使用的所有程序集。
组件请求了特定程序集,但组件提供的名称不是有效程序集名称。 请联系组件供应商。
Visual Studio 加载了类,但无法设计类,因为类的实现者未提供设计器。 如果类支持设计器,请确保不存在会导致设计器中的显示问题的问题(例如编译器错误)。 此外,请确保对类的所有引用都正确且所有类名都拼写正确。 否则,如果类不可设计,请在代码视图中进行编辑。
项目中未引用类,因此 Visual Studio 无法加载它。 若要更正此错误,请在项目中添加对类的引用,然后关闭并重新打开 Windows 窗体设计器窗口。
此控件或组件的设计器不支持与 Visual Studio 相同的类型。 请联系组件供应商。
由用户创建的源代码具有对所用语言无效的类名。 若要更正此错误,请命名类,使其符合语言要求。
无法将控件或组件添加到自身。 可能出现此问题的另一种情况是,如果窗体(例如?Form1
)的 InitializeComponent 方法中有代码创建?Form1
?的另一个实例。
当编辑器中的文件标记为只读时,会发生此错误。 确保文件未标记为只读且应用程序未在运行。
当 Visual Studio 找不到满足设计器要求的基类时,会发生此错误。 窗体和控件必须派生自支持设计器的基类。 如果要从继承窗体或控件派生,请确保已生成项目。
Visual Studio 无法加载类的设计器。 如果看到此错误,请使用报告问题来记录问题。
发生此错误是因为传递给设计器的对象基类是不允许的抽象类。
此文件的基类不支持任何设计器。 解决方法是使用代码视图处理文件。 在解决方案资源管理器中右键单击文件,然后选择“查看代码”。
错误消息:“该文件的语言不支持必需的代码分析和生成服务。 确保你正在打开的文件是项目的成员,然后尝试重新打开该文件。
此错误很可能是由于打开不支持设计器的项目中的文件所导致的。
错误消息:“语言分析器类‘<类名>’没有正确实现。 请和供应商联系以获得更新的分析器模块。”
所使用的语言注册了不是从正确基类派生的设计器类。 请联系你使用的语言的供应商。
这是 Visual Studio 序列化程序中的内部错误。 如果看到此错误,请使用报告问题来记录问题。
IComponent
?接口Visual Studio 尝试创建组件,但创建的对象未实现?IComponent?接口。 请联系组件供应商以获取修补程序。
某些 .NET 属性应始终返回对象。 例如,窗体的控件集合应始终返回对象,即使其中没有控件也是如此。
若要更正此错误,请确保错误中指定的属性不为 null。
序列化程序提供的数据对象不是与所使用的当前序列化程序匹配的类型实例。 请联系组件供应商。
Visual Studio 所需的服务不可用。 如果尝试加载不支持该设计器的项目,请改为使用代码编辑器进行更改。 否则,如果看到此错误,请使用报告问题来记录问题。
此错误指示组件或组件设计器调用了 AddService?方法,该方法需要接口和对象,但指定的对象未实现指定接口。 请联系组件供应商。
如果 Visual Studio 由于磁盘空间或内存问题而无法编辑文件,或者文件标记为只读,则会发生此错误。
如果看到此错误,请使用报告问题来记录问题。
相关组件在 Visual Studio 访问它时引发了异常。 请联系组件供应商。
如果工具箱项中的数据损坏或组件版本已更改,则会发生此错误。 请尝试从工具箱中移除该项,然后再将其添加回工具箱。
当加载设计器时,Visual Studio 未能找到类型。 请确保已引用包含该类型的程序集。 如果该程序集是当前开发项目的一部分,请确保已生成了该项目。
Visual Studio 尝试从错误的线程访问所需资源。 当用于创建设计器的代码从主应用程序线程以外的线程调用类型解析服务时,会显示此错误。 若要更正此错误,请从正确的线程调用服务或联系组件供应商。
源代码引用了未声明或赋值的变量(如 Button1)。 如果变量未赋值,则此消息显示为警告,而不是错误。
如果第三方设计器将已有处理程序的命令添加到命令表中,则会出现此错误。 请联系组件供应商。
错误消息:“已有一个名为‘<组件名称>’的组件。 组件的名称必须是唯一的,而且名称必须不区分大小写。 名称也不能与继承的类中的任何组件名称冲突。”
当在属性窗口中更改了组件的名称时,会出现此错误消息。 若要更正此错误,请确保所有组件名称都是唯一的,不区分大小写,并且不会与继承类中任何组件的名称冲突。
第三方组件对工具箱选项卡上的项进行了回调,但该项已包含回调。 请联系组件供应商。
此消息类似于“该文件的语言不支持必需的代码分析和生成服务”,但此消息涉及内部注册问题。 如果看到此错误,请使用报告问题来记录问题。
Visual Studio 找不到具有匹配参数的构造函数。
此错误可能是由于为构造函数提供的类型不是所需类型所导致的。 例如,Point?构造函数可能采用两个整数。 如果提供了 float 类型,则会引发此错误。
若要更正此错误,请使用其他构造函数,或是显式强制转换参数类型,使其与构造函数提供的类型匹配。
Visual Studio 无法添加引用。 若要更正此错误,请检查是否尚未引用该引用的不同版本。
将当前签入的文件更改为源代码管理时,会出现此错误。 通常,Visual Studio 会提供文件签出对话框,以便用户可以签出文件。 这次文件未签出,可能是由于签出期间发生合并冲突。 若要更正此错误,请确保文件未锁定,然后尝试手动签出文件。
当组件设计器使用不存在的名称请求访问“选项”对话框中的页时,会出现此错误。 请联系组件供应商。
当组件设计器请求访问“选项”对话框中某页上的特定值,但该值不存在时,会出现此错误。 请联系组件供应商。
Visual Studio 加载了类,但未能加载该类的设计器。 Visual Studio 要求设计器使用文件中的第一个类。 若要更正此错误,请移动类代码以使其成为文件中的第一个类,然后重新加载该设计器。
这是第三方组件的问题。 请联系组件供应商。
此错误指示项目的语言不支持设计器,会在你尝试在“打开文件”对话框中或从解决方案资源管理器打开文件时出现。 请改为在代码视图中编辑文件。
Visual Studio 加载了类,但无法设计该类。 请改为通过右键单击类并选择“查看代码”,在代码视图中编辑类。