2008-08-14 65 views
28

你應該能夠創建一個通用的形式:你可以在C#中使用通用表單嗎?

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

是有效的C#,並編譯。但是,如果您有任何圖像說明找不到資源,設計師將無法工作,並且表單將拋出運行時異常。

我認爲這是因爲Windows窗體設計器假定資源將存儲在簡單類型的名稱下。

回答

18

是的,你可以!這裏有一個博客帖子我做了一個前一陣子與招:

Designing Generic Forms

編輯:看起來你已經在做了這種方式。這種方法工作正常,所以我不認爲它太hacky。

+1

如果你有3種形式,那麼呢?我想要Form3:Form2。這包括Form2中的泛型類型參數+控件。任何想法? – mynkow 2010-09-23 21:07:37

0

我有一個黑客來解決此,它的作品,但並不理想:

添加一個新的類繼承其簡單的名稱形式的項目。

internal class MyGenericForm: 
    MyGenericForm<object> { } 

這意味着,雖然設計者仍然是錯誤的預期的簡單類型(即無<>)仍然發現。

相關問題