我有以下自定义表单(MyFrm),它继承自Form。
public class MyFrm<T>: Form where T: class
{
}
以下是我的Form1:
public partial class Form1: MyFrm<CONTACTS_BASE>
{
public Form1()
{
InitializeComponent();
MyInitialize();
}
public void MyInitialize()
{
}
}
可以看出,没有什么特别的,但是,当右键单击并选择视图设计器时,我收到以下错误:
无法为此文件显示设计器,因为其中的所有类都无法设计。设计者检查了文件中的以下类: Form1 ---基类&#39; MyGym.Controls.MyFrm&#39;无法加载。确保已引用程序集并且已构建所有项目。
当我删除下面的部分并相应地编辑我的Form1时,我进入设计师模式时没有出现任何错误。 :形式T:class
为什么我要面对这个问题?有没有解决这个问题? 感谢
答案 0 :(得分:0)
我相信您需要明确提供public class MyFrm<T> : Form
where T : class
{
public MyFrm() : base()
{
InitializeComponent();
}
private void InitializeComponent()
{
}
}
方法,以便Visual Studio IDE(Designer)正常工作。
public partial class Form1 : MyFrm<CONTACTS_BASE>
{
public Form1() : base()
{
InitializeComponent();
MyInitialize();
}
public void MyInitialize()
{
}
}
然后将构造函数链接在一起
: base
请注意 {{1}} 已添加到构造函数中。但是,在这个例子中,由于基本构造函数已经被隐式调用,所以它有点过分。由于这个answer,我提供了这个补充。它声明必须在基类中保留构造函数参数。