Puteți utiliza formulare generice în C #?

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.

0
fr hi bn

2 răspunsuri

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.

0
adăugat
Dar dacă aveți 3 formulare? Vreau Form3: Form2. Aceasta include parametrul de tip generic + controale din Form2. Vreo idee?
adăugat autor mynkow, sursa

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.

0
adăugat