he creado una clase genérica de base para un WinForm control de usuario:clase base genérica para WinForm control de usuario
public partial class BaseUserControl<T> : UserControl
{
public virtual void MyMethod<T>()
{
// some base stuff here
}
}
Y un control de usuario sobre la base de que:
public partial class MyControl : BaseUserControl<SomeClass>
{
public override void MyMethod<SomeClass>()
{
// some specific stuff here
base.MyMethod<SomeClass>();
}
}
Funciona bien, pero MyControl no se puede editar en el diseñador de VisualStudio, porque dice que no puede cargar la clase base. Intenté definir otra clase BaseUserControl, no genérica, con la esperanza de que la cargara, pero el truco no parece funcionar.
Ya tengo una solución: definir una interfaz, IMyInterface <T>, y luego crear mi control como
public partial class MyControl : UserControl, IMyInterface<SomeClass>
Pero pierdo mis métodos base virtual (no es un gran problema, pero aún así ...)
¿Existe alguna manera de crear una clase genérica básica para un UserControl, con la posibilidad de editarla en el Diseñador de VisualStudio?
usted no tiene que perder sus métodos virtuales de base, contienen la clase Implementor en lugar de heredar de ella. – Robocide