2008-08-14 18 views
28

Sen genel form oluşturmak mümkün olmalıdır:C# içinde genel formları kullanabilir misiniz?

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

geçerli C# mıdır ve derler. Ancak tasarımcı çalışmayacaktır ve kaynak kaynağını bulamadığını belirten herhangi bir görseliniz varsa, form çalışma zamanı istisnası atar.

Bunun nedeni, windows form tasarımcısının kaynakların basit yazım adı altında saklanacağını varsaymasıdır.

basit adıyla formu devralan projeye yeni bir sınıf ekleyin:

cevap

18

Evet yapabilirsin! Burada hile ile bir süre önce yapılan bir blog yazısı var:

Designing Generic Forms

Düzenleme: Zaten bu şekilde yapıyoruz gibi görünüyor. Bu yöntem gayet iyi çalışıyor, bu yüzden çok da hacky düşünmüyorum.

+1

3 formunuz var mı? Form3: Form2'yi istiyorum. Bu, Form2'de genel tip parametre + denetimlerini içerir. Herhangi bir fikir? – mynkow

0

Ben ancak çalışır ideal değildir bu geçici çözüm için yazarlardan var.

internal class MyGenericForm: 
    MyGenericForm<object> { } 

Bu tasarım hala yanlış olmasına rağmen beklenen basit tipi (<> olmadan yani) hala bulunamadı demektir.

İlgili konular