2010-04-09 64 views

回答

10

是的,表單就像任何其他類一樣。您必須稍微修改設計器生成的代碼,並注意不會回滾。

// TestForm.cs 
    public partial class TestForm<T> : Form 

// TestForm.Designer.cs 
partial class TestForm<T> 
+6

請注意,通用表單不能在表單設計器中顯示,儘管它們的dscendants可以。 – wRAR 2010-04-09 15:27:11

+0

@wrar,我正在用VS2010進行測試,並且我的TestForm沒有(明顯的)問題。但我期望它有點虛弱。 – 2010-04-09 15:29:35

+0

我正在測試它,並會告訴你它是如何工作的。 – Nathan 2010-04-09 15:41:20

4

至於建議,可以做到這一點 - 但在很多情況下,你會發現自己的戰鬥框架等IMO它可能是簡單的,只是傳遞一個Type到形式(如財產,也許),和實例通過object屬性(或接口/基類,如果適用)。

可以使用泛型,但在很多情況下,在這種情況下,它實際上不會幫助你很多,而設計師討厭它。

+2

Marc,VS2010設計師似乎對通用表單沒有任何問題。雖然它完全失敗了Form-inheritance。 – 2010-04-09 16:50:10