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