4

EmployeeForm在这个表单中调用了一个表单,其中包含一些 UserControl,当我编辑EmployeeForm表单内的每个 UserControl 时,都会丢失。

此图显示修改组合框名称后 TFS(左)和本地(右)文件之间的差异

在此处输入图像描述

this.ucEmployeeKeyOne 的示例:

public partial class Employee_EmployeeKeyOneRelationUC
    : Employee_EmployeeKeyOneRelation_GenericUC
{ [other Code Here] }

public class Employee_EmployeeKeyOneRelation_GenericUC
    : RelationUC<MyObject>
{ }

以及 RelationUC 的定义:

public partial class RelationUC<T>
    : DataUserControlBase
{ [other Code Here] }

public partial class DataUserControlBase
   : UserControlBase
{ [other Code Here] }

public partial class UserControlBase
   : System.Windows.Forms.UserControl, MyInterfaceHere
{ [other Code Here] }

UserControl我失去的一切都是从RelationUC<T>. RelationUC 的泛型类型是否会导致问题?

4

1 回答 1

3

为了让 Vs 设计器加载控件,控件应该能够初始化,包括所有公共属性,并且您必须有一个空的构造函数。如果您没有空的构造函数或具有从继承的可为空类返回的属性,则设计器很可能会崩溃。

要调试这个,

1)在VS中打开你的项目,但不要打开包含控件的文件;

2)打开另一个VS,并附上你的项目打开的VS的进程;

3)将异常中断(快捷方式 ' CTRL+ DCTRL+ E' )设置为所有(一旦您熟悉了设计者抛出的异常,您就可以只设置该异常。);

4)带着你的项目去VS并打开包含你的用户控件的文件。当抛出异常时,第二个 VS 将捕获它并告诉您确切的原因和位置。

于 2013-05-01T13:24:35.290 回答