2010-04-09 68 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