Ar trebui să puteți crea un formular generic:
public partial class MyGenericForm :
Form where T : class
{
/* form code */
public List TypedList { get; set; }
}
Este valabil C #, și se compilează. Cu toate acestea, designerul nu va funcționa, iar formularul va arunca o excepție de rulare dacă aveți imagini care indică faptul că nu poate găsi resursa.
Cred că acest lucru se datorează faptului că proiectantul ferestrelor presupune că resursele vor fi stocate sub numele de tip simplu.
Am un hack pentru a rezolva acest lucru, care funcționează dar nu este ideal:
Adăugați o nouă clasă la proiectul care moștenește formularul cu numele său simplu.
internal class MyGenericForm:
MyGenericForm
This means that although the designer is still wrong the expected simple type (i.e without <>
) is still found.
Da, poti! Iată un post de blog pe care l-am făcut cu ceva timp în urmă:
Proiectarea formularelor generice
Editați: Se pare că deja o faceți în acest fel. Această metodă funcționează bine, așa că nu aș considera că este prea nebun.