我创建了一个通用的WinForm UserControl基类:
public partial class BaseUserControl<T> : UserControl
{
public virtual void MyMethod<T>()
{
// some base stuff here
}
}
基于该控件的用户控件:
public partial class MyControl : BaseUserControl<SomeClass>
{
public override void MyMethod<SomeClass>()
{
// some specific stuff here
base.MyMethod<SomeClass>();
}
}
它能正常工作,但是在 VisualStudio 设计师中无法编辑 MyControl,因为它说无法加载基类。我尝试定义另一个非泛型的基类 BaseUserControl,希望能加载它,但这个技巧似乎不起作用。
我已经有一个解决方法: 定义一个接口 IMyInterface<T>,然后将我的控件创建为
public partial class MyControl : UserControl, IMyInterface<SomeClass>
但我失去了我的基本虚拟方法(不是很重要,但还是...)。
是否有一种方法可以为UserControl创建一个基本的泛型类,并有可能在VisualStudio设计器中编辑它?