Domanda

Dovresti essere in grado di creare un modulo generico:

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

È valido C# e viene compilato.Tuttavia, il designer non funzionerà e il modulo genererà un'eccezione di runtime se sono presenti immagini che indicano che non è possibile trovare la risorsa.

Penso che ciò sia dovuto al fatto che la finestra di progettazione dei moduli Windows presuppone che le risorse verranno archiviate con il nome del tipo semplice.

È stato utile?

Soluzione

Si, puoi!Ecco un post sul blog che ho scritto qualche tempo fa con il trucco:

Progettazione di moduli generici

Modificare:Sembra che tu lo stia già facendo in questo modo.Questo metodo funziona bene quindi non lo considererei troppo complicato.

Altri suggerimenti

Ho un trucco per risolvere questo problema, che funziona ma non è l'ideale:

Aggiungi una nuova classe al progetto che eredita il modulo con il suo nome semplice.

internal class MyGenericForm:
    MyGenericForm<object> { }

Ciò significa che, sebbene il progettista abbia ancora torto, il tipo semplice previsto (ovvero senza <>) si trova ancora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top