Я создал общий базовый класс для 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>();
}
}
Он отлично работает, но MyControl не может быть отредактирован в VisualStudio Designer, потому что он говорит, что он не может загрузить базовый класс. Я попытался определить другой класс BaseUserControl, не общий, надеясь, что он загрузит его, но трюк не работает.
У меня уже есть обходное решение: определите интерфейс, IMyInterface <T> , а затем создайте мое управление как
public partial class MyControl : UserControl, IMyInterface<SomeClass>
Но я теряю базовые виртуальные методы (не большое дело, но все же...).
Есть ли способ создать базовый общий класс для UserControl, с возможностью его редактирования в VisualStudio Designer?