Pergunta

Você deve ser capaz de criar um formulário genérico:

public partial class MyGenericForm<T> :
    Form where T : class
{
    /* form code */
    public List<T> TypedList { get; set; }
}

É C# válido e compila.No entanto, o designer não funcionará e o formulário lançará uma exceção de tempo de execução se você tiver alguma imagem informando que não consegue encontrar o recurso.

Acho que isso ocorre porque o designer de formulários do Windows assume que os recursos serão armazenados sob o nome do tipo simples.

Foi útil?

Solução

Sim você pode!Aqui está uma postagem no blog que fiz há algum tempo com o truque:

Projetando Formulários Genéricos

Editar:Parece que você já está fazendo assim.Este método funciona bem, então não o consideraria muito hackeado.

Outras dicas

Eu tenho um hack para solucionar isso, que funciona, mas não é ideal:

Adicione uma nova classe ao projeto que herde o formulário com seu nome simples.

internal class MyGenericForm:
    MyGenericForm<object> { }

Isto significa que embora o designer ainda esteja errado, o tipo simples esperado (ou seja, sem <>) ainda é encontrado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top