Windows 窗体设计器错误页

如果 Windows 窗体设计器由于代码、第三方组件或其他位置的错误而未能加载,你会看到错误页而不是设计器。 此错误页不一定表示设计器中的 bug。 bug 可能位于名为 <你的窗体名称>.Designer.cs 的代码隐藏页面中的某个位置。 错误显示在可折叠的黄色栏中,其中带有用于跳转到代码页上错误位置的链接。

Windows 窗体设计器错误页

可以通过单击“忽略并继续”,来选择忽略错误并继续加载设计器。 此操作可能会导致意外行为,例如,控件可能不会显示在设计图面上。

此错误的实例

黄色错误栏展开后,会列出错误的每个实例。 许多错误类型采用以下格式包含确切位置:[项目名称] [窗体名称] 行:[行号] 列:[列号]。 如果调用堆栈与错误关联,则可单击“显示调用堆栈”链接以进行查看。 检查调用堆栈可能会进一步帮助你解决错误。

Windows 窗体设计器展开的错误

注意

  • 对于 Visual Basic 应用,设计时错误页不显示多个错误,但可能显示同一错误的多个实例。
  • 对于 C++ 应用,错误没有代码位置链接。

有关此错误的帮助

如果提供了针对错误的帮助主题,请单击“MSDN 帮助”链接,直接导航到帮助页

有关此错误的论坛帖子

单击“在 MSDN 论坛中搜索与此错误相关的帖子”链接,以导航到 Microsoft 开发人员网络论坛。 你可能要专门搜索 Windows 窗体设计器Windows 窗体论坛。

设计时错误

此部分列出了可能会遇到的一些错误。

<标识符名称> 不是有效标识符

此错误指示字段、方法、事件或对象未正确命名。

“<名称>”已存在于“<项目名称>”中

错误消息:“‘<名称>’已存在于‘<项目名称>’中。 请输入唯一的名称。”

你为项目中已存在的继承窗体指定了名称。 若要更正此错误,请为继承窗体提供唯一名称。

“<工具箱选项卡名称>”不是工具箱类别

第三方设计器尝试访问工具箱上不存在的选项卡。 请联系组件供应商。

请求的语言分析程序未安装

错误消息:“请求的语言分析器未安装。 语言分析器名称为‘{0}’。”

Visual Studio 尝试加载为文件类型注册的设计器,但无法加载。 这很可能是由于安装过程中发生了错误。 请联系你用于修补程序的语言的供应商。

缺少生成和分析源代码所需的服务

这是第三方组件的问题。 请联系组件供应商。

尝试创建“<对象名称>”的实例时发生异常

错误消息:“尝试创建‘<对象名称>’的实例时发生异常。 异常为‘<异常字符串>’”。

第三方设计器请求 Visual Studio 创建对象,但对象引发错误。 请联系组件供应商。

另一个编辑器以不兼容的模式打开了“<文档名称>”

错误消息:“另一个编辑器以不兼容的模式打开了‘<文档名称>’。 请关闭该编辑器,然后重试此操作。”

如果尝试打开已在另一个编辑器中打开的文件,则会出现此错误。 会显示已打开文件的编辑器。 若要更正此错误,请关闭打开文件的编辑器,然后重试。

另一个编辑器对“<文档名称>”进行了更改

关闭设计器,然后重新打开才能使更改生效。 通常,Visual Studio 会在进行更改后自动重新加载设计器。 但是,其他设计器(如第三方组件设计器)可能不支持重新加载行为。 在这种情况下,Visual Studio 会提示你手动关闭并重新打开设计器。

另一个编辑器以不兼容的模式打开了此文件

错误消息:“另一个编辑器以不兼容模式的打开了此文件。 请关闭该编辑器,然后重试此操作。”

此消息类似于“另一个编辑器以不兼容的模式打开了‘<文档名称>’”,但 Visual Studio 无法确定文件名。 若要更正此错误,请关闭打开文件的编辑器,然后重试。

数组秩“<数组中的秩>”过高

在设计器分析的代码块中,Visual Studio 仅支持单维数组。 多维数组在此区域之外有效。

无法打开程序集“<程序集名称>”

错误消息:“无法打开程序集‘<程序集名称>’。 请验证该文件是否仍存在。”

尝试打开无法打开的文件时,会出现此错误消息。 请验证该文件存在并且是有效程序集。

错误的元素类型。 此序列化程序要求元素类型为“<类型名称>”

这是第三方组件的问题。 请联系组件供应商。

此时无法访问 Visual Studio 工具箱

Visual Studio 在工具箱不可用时对其进行了调用。 如果看到此错误,请使用报告问题来记录问题。

“<事件名称>”事件是只读的,因此无法将事件处理程序绑定到该事件

尝试将事件连接到从基类继承的控件时,通常会出现此错误。 如果控件的成员变量是私有变量,则 Visual Studio 无法将事件连接到方法。 私有继承控件不能绑定其他事件。

请求的组件不是设计容器的成员,因此无法创建该组件的方法名称

Visual Studio 尝试将事件处理程序添加到设计器中没有成员变量的组件。 请联系组件供应商。

对象“<名称>”已命名为“<名称>”,因此无法命名该对象

这是 Visual Studio 序列化程序中的内部错误。 它指示序列化程序尝试对一个对象命名两次,此操作不受支持。 如果看到此错误,请使用报告问题来记录问题。

无法移除或损坏继承的组件“<组件名称>”

继承的控件由其继承类所拥有。 必须在控件的起源类中更改继承的控件。 因而无法重命名或销毁它。

类别“<工具箱选项卡名称>”没有类“<>类名”的工具

设计器尝试引用特定工具箱选项卡上的类,但该类不存在。 请联系组件供应商。

类“<类名>”没有匹配的构造函数

第三方设计器要求 Visual Studio 在不存在的构造函数中创建具有特定参数的对象。 请联系组件供应商。

属性“<属性名称>”的代码生成失败

这是错误的泛型包装器。 此消息附带的错误字符串会提供有关错误消息的更多详细信息,并提供指向更具体帮助主题的链接。 若要更正此错误,请解决追加到此错误的错误消息中指定的错误。

组件“<组件名称>”未在其构造函数中调用 container.Add()

这是刚刚在窗体上加载或放置的组件中的错误。 它指示组件未将自己添加到其容器控件(无论是其他控件还是窗体)。 设计器会继续工作,但组件在运行时可能会出现问题。

若要更正错误,请联系组件供应商。 或者,如果是创建的组件,请在组件构造函数中调用 IContainer.Add 方法。

组件名称不能为空

尝试将组件重命名为空值时,会出现此错误。

未能访问变量“<变量名称>”,因为它尚未初始化

此错误可能是由于两种情形导致的。 第三方组件供应商分发的控件或组件有问题,或者你编写的代码在组件之间具有递归依赖项。

若要更正此错误,请确保代码没有递归依赖项。 如果不存在此类问题,请记下错误消息的确切文本并联系组件供应商。

找不到类型“<类型名称>”

错误消息:“找不到类型‘<类型名称>’。 请确保已引用包含此类型的程序集。 如果此类型为开发项目的一部分,请确保已成功生成该项目。”

发生此错误是因为找不到引用。 请确保引用错误消息中指示的类型,并且还引用了该类型所需的所有程序集。 通常,问题是解决方案中的控件未生成。 若要生成,请从“生成”菜单中选择“生成解决方案”。 否则,如果控件已生成,请从解决方案资源管理器中“引用”或“依赖项”文件夹的右键单击菜单中手动添加引用

无法加载类型“<类型名称>”

错误消息:“无法加载类型‘<类型名称>’。 请确保将包含此类型的程序集添加到项目引用中。”

Visual Studio 尝试关联事件处理方法,但找不到该方法的一个或多个参数类型。 这通常是由于缺少引用导致的。 若要更正此错误,请将包含类型的引用添加到项目,然后重试。

找不到继承的组件的项目项模板

Visual Studio 中继承表单的模板不可用。 如果看到此错误,请使用报告问题来记录问题。

委托类“<类名>”没有 invoke 方法。 此类是否为委托

Visual Studio 尝试创建事件处理程序,但事件类型有问题。 如果事件是通过不符合 CLS 的语言所创建,则可能会发生这种情况。 请联系组件供应商。

成员“<成员名称>”的重复声明

出现此错误的原因是成员变量已声明两次(例如,在代码中声明了两个名为 Button1 的控件)。 名称必须在继承表单间唯一。 此外,名称不能仅通过大小写来区分。

从区域性“<区域性名称>”的资源文件中读取资源时出错

如果项目中存在错误的 .resx 文件,则可能会发生此错误。

若要更正该错误,请执行以下操作:

  1. 单击解决方案资源管理器中的“显示所有文件”按钮以查看与解决方案关联的 .resx 文件
  2. 通过右键单击 .resx 文件并选择“打开”,在 XML 编辑器中加载 .resx 文件
  3. 手动编辑 .resx 文件以解决错误。

从默认区域性“<区域性名称>”的资源文件中读取资源时出错

如果对于默认区域性,项目中存在错误的 .resx 文件,则可能会发生此错误。

若要更正该错误,请执行以下操作:

  1. 单击解决方案资源管理器中的“显示所有文件”按钮以查看与解决方案关联的 .resx 文件
  2. 通过右键单击 .resx 文件并选择“打开”,在 XML 编辑器中加载 .resx 文件
  3. 手动编辑 .resx 文件以解决错误。

未能分析方法“<方法名称>”

错误消息:“未能分析方法‘<方法名称>’。 分析器报告以下错误:‘<错误字符串>’。 请查看任务列表以了解潜在的错误。”

这是针对分析过程中出现的问题的常规错误消息。 这些错误通常是由于语法错误导致的。 有关与错误相关的特定消息,请参阅任务列表。

无效的组件名称:“<组件名称>”

你尝试将组件重命名为对该语言无效的值。 若要更正此错误,请命名组件,使其符合该语言的命名规则。

类型“<类名>”由同一文件中的几个分部类构成

使用 partial 关键字在多个文件中定义类时,在每个文件中只能有一个分部定义。

若要更正此错误,请从文件中移除类的所有分部定义(只保留一个)。

未能找到程序集“<程序集名称>”

错误消息:“未能找到程序集‘<程序集名称>’。 请确保引用了该程序集。 如果该程序集是当前开发项目的一部分,请确保已生成了该项目。”

此错误类似于“找不到类型‘<类型名称>’”,但发生此错误通常是由于元数据属性。 若要更正此错误,请检查是否引用了属性使用的所有程序集。

程序集名称“<程序集名称>”无效

组件请求了特定程序集,但组件提供的名称不是有效程序集名称。 请联系组件供应商。

无法设计基类“<类名>”

Visual Studio 加载了类,但无法设计类,因为类的实现者未提供设计器。 如果类支持设计器,请确保不存在会导致设计器中的显示问题的问题(例如编译器错误)。 此外,请确保对类的所有引用都正确且所有类名都拼写正确。 否则,如果类不可设计,请在代码视图中进行编辑。

未能加载基类“<类名>”

项目中未引用类,因此 Visual Studio 无法加载它。 若要更正此错误,请在项目中添加对类的引用,然后关闭并重新打开 Windows 窗体设计器窗口。

不能在此版本的 Visual Studio 中设计“<类名>”类

此控件或组件的设计器不支持与 Visual Studio 相同的类型。 请联系组件供应商。

该类名不是此语言的有效标识符

用户创建的源代码具有对所用语言无效的类名。 若要更正此错误,请命名类,使其符合语言要求。

组件包含对“<引用名称>”的循环引用,因此无法添加该组件

无法将控件或组件添加到自身。 可能出现此问题的另一种情况是,如果窗体(例如 Form1)的 InitializeComponent 方法中有代码创建 Form1 的另一个实例。

此时无法修改设计器

当编辑器中的文件标记为只读时,会发生此错误。 确保文件未标记为只读且应用程序未在运行。

由于文件中的类都不能进行设计,因此无法为该文件显示设计器

当 Visual Studio 找不到满足设计器要求的基类时,会发生此错误。 窗体和控件必须派生自支持设计器的基类。 如果要从继承窗体或控件派生,请确保已生成项目。

未安装基类“<类名>”的设计器

Visual Studio 无法加载类的设计器。 如果看到此错误,请使用报告问题来记录问题。

设计器必须创建类型“<类型名称>”的实例,但该类型已声明为抽象,因此设计器无法创建该类型的实例

发生此错误是因为传递给设计器的对象基类是不允许的抽象类。

无法在设计器中加载该文件

此文件的基类不支持任何设计器。 解决方法是使用代码视图处理文件。 在解决方案资源管理器中右键单击文件,然后选择“查看代码”

该文件的语言不支持必需的代码分析和生成服务

错误消息:“该文件的语言不支持必需的代码分析和生成服务。 请确保你正在打开的文件是项目的成员,然后尝试重新打开该文件。”

此错误很可能是由于打开不支持设计器的项目中的文件所导致的。

语言分析器类“<类名>”没有正确实现

错误消息:“语言分析器类‘<类名>’没有正确实现。 请和供应商联系以获得更新的分析器模块。”

所使用的语言注册了不是从正确基类派生的设计器类。 请联系你使用的语言的供应商。

名称“<名称>”已由另一个对象使用

这是 Visual Studio 序列化程序中的内部错误。 如果看到此错误,请使用报告问题来记录问题。

对象“对象名称”<>没有实现 IComponent 接口

Visual Studio 尝试创建组件,但创建的对象未实现 IComponent 接口。 请联系组件供应商以获取修补程序。

对象“<对象名称>”为属性“<属性名称>”返回了 null,而这是不允许的

某些 .NET 属性应始终返回对象。 例如,窗体的控件集合应始终返回对象,即使其中没有控件也是如此

若要更正此错误,请确保错误中指定的属性不为 null。

序列化数据对象的类型不正确

序列化程序提供的数据对象不是与所使用的当前序列化程序匹配的类型实例。 请联系组件供应商。

需要服务“<服务名称>”,但未能找到它

错误消息:“需要服务‘服务名称’,但未能找到它<>。 Visual Studio 安装可能存在问题。”

Visual Studio 所需的服务不可用。 如果尝试加载不支持该设计器的项目,请使用代码编辑器进行所需更改。 否则,如果看到此错误,请使用报告问题来记录问题。

服务实例必须从“<接口名称>”派生或实现它

此错误指示组件或组件设计器调用了 AddService 方法,该方法需要接口和对象,但指定的对象未实现指定接口。 请联系组件供应商。

无法修改代码窗口中的文本

错误消息:“未能修改代码窗口中的文本。 检查文件是否不是只读,并且是否有足够的磁盘空间。”

如果 Visual Studio 由于磁盘空间或内存问题而无法编辑文件,或者文件标记为只读,则会发生此错误。

工具箱枚举数对象仅支持一次检索一个项

如果看到此错误,请使用报告问题来记录问题。

未能从工具箱中检索到“<组件名称>”的工具箱项

错误消息:“未能从工具箱中检索到‘<组件名称>’的工具箱项。 请确保正确安装了包含该工具箱项的程序集。 该工具箱项引发了以下错误: <错误字符串>。”

相关组件在 Visual Studio 访问它时引发了异常。 请联系组件供应商。

未能从工具箱中检索到“<工具箱项名称>”的工具箱项

错误消息:“未能从工具箱中检索到‘<工具箱项名称>’的工具箱项。 请尝试从工具箱中移除该项,然后再将其添加回工具箱。”

如果工具箱项中的数据损坏或组件版本已更改,则会发生此错误。 请尝试从工具箱中移除该项,然后再将其添加回工具箱。

未能找到类型“<类型名称>”

错误消息:“未能找到类型‘<类型名称>’。 请确保已引用包含该类型的程序集。 如果该程序集是当前开发项目的一部分,请确保已生成了该项目。”

加载设计器时,Visual Studio 未能找到类型。 请确保已引用包含该类型的程序集。 如果该程序集是当前开发项目的一部分,请确保已生成了该项目。

只能从主应用程序线程调用类型解析服务

Visual Studio 尝试从错误的线程访问所需资源。 当用于创建设计器的代码从主应用程序线程以外的线程调用类型解析服务时,会显示此错误。 若要更正此错误,请从正确的线程调用服务或联系组件供应商。

变量“<变量名称>”未声明或从未赋值

源代码引用了未声明或赋值的变量(如 Button1)。 如果变量未赋值,则此消息显示为警告,而不是错误。

菜单命令“<菜单命令名称>”已经有一个命令处理程序

如果第三方设计器将已有处理程序的命令添加到命令表中,则会出现此错误。 请联系组件供应商。

已有一个名为“<组件名称>”的组件

错误消息:“已有一个名为‘<组件名称>’的组件。 组件的名称必须是唯一的,而且名称必须不区分大小写。 名称也不能与继承的类中的任何组件名称冲突。”

当在属性窗口中更改了组件的名称时,会出现此错误消息。 若要更正此错误,请确保所有组件名称都是唯一的,不区分大小写,并且不会与继承类中任何组件的名称冲突。

已有一个工具箱项创建者注册了格式“<格式名称>”

第三方组件对工具箱选项卡上的项进行了回调,但该项已包含回调。 请联系组件供应商。

此语言引擎不支持用于加载设计器的 CodeModel

此消息类似于“该文件的语言不支持必需的代码分析和生成服务”,但此消息涉及内部注册问题。 如果看到此错误,请使用报告问题来记录问题。

类型“<类型名称>”不具有带有“<参数类型名称>”类型参数的构造函数

Visual Studio 找不到具有匹配参数的构造函数。 这可能是由于为构造函数提供的类型不是所需类型所导致的。 例如,Point 构造函数可能采用两个整数。 如果提供了浮点数,则会引发此错误。

若要更正此错误,请使用其他构造函数,或是显式强制转换参数类型,使其与构造函数提供的类型匹配。

无法添加对当前应用程序的引用“<引用名称>”

错误消息:“无法添加对当前应用程序的引用‘<引用名称>’。 请检查以确保未引用不同的‘<引用名称>’版本。”

Visual Studio 无法添加引用。 若要更正此错误,请检查是否尚未引用该引用的不同版本。

无法签出当前文件

错误消息:“无法签出当前文件。 文件可能被锁定,或者可能需要手动签出文件。”

将当前签入的文件更改为源代码管理时,会出现此错误。 通常,Visual Studio 会提供文件签出对话框,以便用户可以签出文件。 这次文件未签出,可能是由于签出期间发生合并冲突。 若要更正此错误,请确保文件未锁定,然后尝试手动签出文件。

无法找到名为“<选项对话框选项卡名称>”的页

当组件设计器使用不存在的名称请求访问“选项”对话框中的页时,会出现此错误。 请联系组件供应商。

无法在页“<选项对话框选项卡名称>”上找到属性“<属性名称>”

当组件设计器请求访问“选项”对话框中某页上的特定值,但该值不存在时,会出现此错误。 请联系组件供应商。

由于该文件内的类不是从可进行可视化设计的类继承,因此 Visual Studio 无法为该文件打开设计器

Visual Studio 加载了类,但未能加载该类的设计器。 Visual Studio 要求设计器使用文件中的第一个类。 若要更正此错误,请移动类代码以使其成为文件中的第一个类,然后重新加载该设计器。

Visual Studio 无法保存或加载类型“<类型名称>”的实例

这是第三方组件的问题。 请联系组件供应商。

Visual Studio 无法在设计视图中打开“<文档名称>”

错误消息:“Visual Studio 无法在设计视图中打开‘<文档名称>’。 未安装该文件类型的分析器。”

此错误指示项目的语言不支持设计器,会在你尝试在“打开文件”对话框中或从解决方案资源管理器打开文件时出现。 请改为在代码视图中编辑文件。

Visual Studio 未能找到用于“<类型名称>”类型的类的设计器

Visual Studio 加载了类,但无法设计该类。 请改为通过右键单击类并选择“查看代码”,在代码视图中编辑类

另请参阅