Question

Vous devriez pouvoir créer un formulaire générique :

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

Est valide en C# et compile.Cependant, le concepteur ne fonctionnera pas et le formulaire lèvera une exception d'exécution si vous avez des images indiquant qu'il ne peut pas trouver la ressource.

Je pense que c'est parce que le concepteur de Windows Forms suppose que les ressources seront stockées sous le nom du type simple.

Était-ce utile?

La solution

Oui, vous pouvez!Voici un article de blog que j'ai publié il y a quelque temps avec l'astuce :

Conception de formulaires génériques

Modifier:On dirait que vous le faites déjà de cette façon.Cette méthode fonctionne bien, donc je ne la considérerais pas comme trop piratée.

Autres conseils

J'ai un hack pour contourner ce problème, qui fonctionne mais n'est pas idéal :

Ajoutez une nouvelle classe au projet qui hérite du formulaire avec son nom simple.

internal class MyGenericForm:
    MyGenericForm<object> { }

Cela signifie que même si le concepteur se trompe encore, le type simple attendu (c'est-à-dire sans <>) est toujours trouvé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top