您应该能够创建一个通用表单:

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

是有效的 C#,并且可以编译。但是,如果您有任何图像表明无法找到资源,设计器将无法工作,并且表单将引发运行时异常。

我认为这是因为 Windows 窗体设计器假设资源将存储在简单类型的名称下。

有帮助吗?

解决方案

是的你可以!这是我不久前用这个技巧写的一篇博客文章:

设计通用表单

编辑:看起来你已经在这样做了。这个方法效果很好,所以我不认为它太hacky。

其他提示

我有一个解决这个问题的方法,它有效但并不理想:

将一个新类添加到项目中,该类继承具有简单名称的表单。

internal class MyGenericForm:
    MyGenericForm<object> { }

这意味着尽管设计者仍然错误地期望简单类型(即没有 <>)仍然被发现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top