VS 2010设计器错误'在Windows7中找不到类型XYZ'.在XP中运行良好

jbl*_*ble 17 .net c# visual-studio-2010 windows-7

我在VS 2010 C#.NET中遇到了问题.我在Windows XP上有一个项目,包括表单,类和一些我自己的自定义组件.这些组件是内置MS组件的简单扩展(例如DataGridViewEx作为DataGridView的扩展).一切都在XP中运行良好.我正试图在Windows 7/x64上将此项目移植到VS 2010.我已经有了在Windows 7上编译OK的解决方案,但是在设计模式下,当我打开包含一个自定义控件的表单时,我收到错误'找不到类型XYZ.DataGridViewEx.请确保引用包含此类型的程序集.XYZ是我用于这些控件的命名空间,它与使用控件的表单具有相同的命名空间.所有这些都是同一个VS项目的一部分.

当我在同一项目中打开一个不包含这些自定义控件之一的表单时,该表单在设计器中打开OK,我在工具箱的左侧看到自定义控件.但是,如果我然后尝试将其中一个控件拖到该表单中,它会弹出一个错误消息框'无法加载工具箱项'DataGridViewEx'.它将从工具箱中删除.然后它会从工具箱中删除.

在XP中的VS解决方案中,一切都运行良好.此问题仅发生在Windows 7/x64中的VS解决方案中.

我不明白为什么它抱怨无法找到组件,因为组件是同一项目的一部分.这是一件有效的事情,不是吗?

我搜索了网络/论坛,发现了"找不到类型"错误的情况,但它似乎是由一个不同的问题引起的,我还没有找到摆脱错误的方法.

任何帮助/提示非常感谢!

Ric*_*ead 21

如果您的项目针对64位,则需要构建32位并在进行GUI编辑时选择32位解决方案.这是因为studio是32位,因此无法加载64位控件.

  • 我无法相信VS2010甚至没有警告这可能是造成麻烦的原因!这完全是我案件中的罪魁祸首.谢谢! (5认同)
  • 经过长时间的调试,这让我大吃一惊.问题仍然出现在VS2013中.可能永远不会修复. (3认同)

Wan*_*eer 1

我以前遇到过这种情况,请确保在 Form.Designer.cs 代码文件中,对自定义控件的每次调用都是作为绝对调用完成的。例如:

Namespace.CustomControl control;
Run Code Online (Sandbox Code Playgroud)

而不是

CustomControl control;
Run Code Online (Sandbox Code Playgroud)

  • 这个问题有结论了吗? (2认同)