在我的应用程序中,我有一个BaseForm
,其中包含一个通用成员:
public partial class BaseForm<T> : Form where T : Presenter
{
protected T Presenter;
public BaseForm()
{
InitializeComponent();
}
}
现在我需要的是一个从我的BaseForm继承的表单
public partial class SampleForm : BaseForm<SamplePresenter>
{
public SampleForm()
{
InitializeComponent();
Presenter = new SamplePresenter();
}
}
问题是Visual Studio设计器没有显示从SampleForm
派生的BaseForm<T>
。
它给出了这个警告:
警告1无法为此文件显示设计器,因为无法设计其中的任何类。设计者检查了文件中的以下类:
SampleForm ---基类&#39; Invoice.BaseForm&#39;无法加载。确保已引用程序集并且已构建所有项目。 0 0
我怎样才能克服这一点?
P.S。我看了this post,但并没有真正了解如何解决这个问题。
答案 0 :(得分:10)
设计师并不支持这一点,如该帖所述。
你需要这个基类:
public partial class SampleFormIntermediate : BaseForm<SamplePresenter>
{
public SampleFormIntermediate()
{
InitializeComponent();
Presenter = new SamplePresenter();
}
}
您需要将此类用于Visual Studio设计器:
public partial class SampleForm : SampleFormIntermediate
{
}
通过这种方式,Visual Studio可以理解&#39;在设计师中打开什么以及如何打开它。