【发布时间】:2009-03-24 14:18:38
【问题描述】:
我为 WinForm UserControl 创建了一个通用基类:
public partial class BaseUserControl<T> : UserControl
{
public virtual void MyMethod<T>()
{
// some base stuff here
}
}
还有一个基于此的 UserControl:
public partial class MyControl : BaseUserControl<SomeClass>
{
public override void MyMethod<SomeClass>()
{
// some specific stuff here
base.MyMethod<SomeClass>();
}
}
它工作正常,但无法在 VisualStudio 设计器中编辑 MyControl,因为它说它无法加载基类。 我试图定义另一个类 BaseUserControl,非泛型,希望它能加载它,但这个技巧似乎不起作用。
我已经有一个解决方法:定义一个接口,IMyInterface
public partial class MyControl : UserControl, IMyInterface<SomeClass>
但是我失去了我的基本虚拟方法(没什么大不了的,但仍然......)。
有没有办法为 UserControl 创建一个基类,并可以在 VisualStudio 设计器中对其进行编辑?
【问题讨论】:
-
你不必放弃你的基本虚方法,包含实现类而不是从它继承。
-
从 VS 2015.1 开始,Windows 窗体设计器显示具有通用基类的类没有任何问题。 See example.
标签: c# .net winforms visual-studio-2008 windows-forms-designer