VS 2012 Designer无法显示

时间:2013-04-18 16:37:16

标签: c# winforms visual-studio-2012 devexpress

我有一个继承自Employee_EmployeeKeyOneRelationUC继承自RelationUC

RelationBase的UserControl类System.Window.Forms.UserControl

当我尝试在Designer中打开Employee_EmployeeKeyOneRelationUC时出现此错误:

The designer could not be shown for this file because none of the classes within it can be designed. The designer inspected the following classes in the file: Employee_EmployeeKeyOneRelationUC --- The base class 'AstusFMS.Content.RelationUC' could not be loaded. Ensure the assembly has been referenced and that all projects have been built.

但是,当我打开RelationUCRelationBase时,两者都正确显示。

我的程序仍在编译,但为什么这会困扰我?因为我的表单EmployeeForm使用了大量UserControl(例如Employee_EmployeeKeyOneRelationUC),当我尝试编辑此表单中的内容时,每个UserControl都包含在继承自{{ 1}}被删除(左:TFS服务器,右:本地):

Diff for EmployeeForm.Designer.cs (left: TFS Server, right: local)

此差异显示设计人员删除了我的所有UserControleBase对象。仅仅因为我更改了ComboBox的名称(组合框与其中一个UC无关)。

我注意到当我创建一个新的UserControl文件时,显示的默认代码有一个错误: Default UserControl with error

但是ucEmployee*就在那里。如果我更改了Using System.Windows.Forms; UserControl,那就可以了。

我可能不够清楚,如果你有疑问,我会全天回答和测试。

使用VS2010,VS2012 Update 1,VS2012 Update 2

在3台不同的计算机上进行测试

2 个答案:

答案 0 :(得分:4)

在Form或Usercontrol中使用泛型时,建议您放置一个定义Generic类型的空类。您当前的表格来自该课程。

我将该类放在同一个文件中。它必须在像这样的实际Form代码之后:

  public partial class Employee_EmployeeKeyOneRelationUC
    : Employee_EmployeeKeyOneRelation_GenericUC
  { ... }

  public class Employee_EmployeeKeyOneRelation_GenericUC
    : RelationUC<MyObject>
  { }

答案 1 :(得分:1)

如果从VS2010加载C ++ CLR Winforms应用程序,VS2013有一个表单设计器的错误。 “设计器无法显示此文件,因为其中的任何类都无法设计。”

如果更改并保存源文件,则表单设计器将再次开始工作。 但是再次加载项目再次失败。 看起来像加载源文件和解析代码的表单设计者之间的竞争。