Car*_*ine 7 c# generics inheritance windows-forms-designer visual-studio
在我的应用程序中,我有BaseForm一个通用成员:
public partial class BaseForm<T> : Form where T : Presenter
{
protected T Presenter;
public BaseForm()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我需要的是一个从我的BaseForm继承的表单
public partial class SampleForm : BaseForm<SamplePresenter>
{
public SampleForm()
{
InitializeComponent();
Presenter = new SamplePresenter();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是Visual Studio设计器没有显示我的SampleForm派生BaseForm<T>.
它给出了这个警告:
警告1无法为此文件显示设计器,因为其中的任何类都无法设计.设计者检查了文件中的以下类:
SampleForm ---无法加载基类"Invoice.BaseForm".确保已引用程序集并且已构建所有项目.0 0
我怎么能克服这个?
PS我看了这篇文章,但并没有真正了解如何解决这个问题.
Pat*_*man 10
设计师不支持这一点,如该帖子中所述.
你需要这个基类:
public partial class SampleFormIntermediate : BaseForm<SamplePresenter>
{
public SampleFormIntermediate()
{
InitializeComponent();
Presenter = new SamplePresenter();
}
}
Run Code Online (Sandbox Code Playgroud)
并且您需要将此类用于Visual Studio设计器:
public partial class SampleForm : SampleFormIntermediate
{
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,Visual Studio'了解'在设计器中打开什么以及如何打开它.
| 归档时间: |
|
| 查看次数: |
2447 次 |
| 最近记录: |