我有一个继承自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.
但是,当我打开RelationUC
和RelationBase
时,两者都正确显示。
我的程序仍在编译,但为什么这会困扰我?因为我的表单EmployeeForm
使用了大量UserControl
(例如Employee_EmployeeKeyOneRelationUC
),当我尝试编辑此表单中的内容时,每个UserControl都包含在继承自{{ 1}}被删除(左:TFS服务器,右:本地):
此差异显示设计人员删除了我的所有UserControleBase
对象。仅仅因为我更改了ComboBox的名称(组合框与其中一个UC无关)。
我注意到当我创建一个新的UserControl文件时,显示的默认代码有一个错误:
但是ucEmployee*
就在那里。如果我更改了Using System.Windows.Forms;
UserControl
,那就可以了。
我可能不够清楚,如果你有疑问,我会全天回答和测试。
使用VS2010,VS2012 Update 1,VS2012 Update 2
在3台不同的计算机上进行测试答案 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有一个表单设计器的错误。 “设计器无法显示此文件,因为其中的任何类都无法设计。”
如果更改并保存源文件,则表单设计器将再次开始工作。 但是再次加载项目再次失败。 看起来像加载源文件和解析代码的表单设计者之间的竞争。