使用泛型创建自定义控件

本文关键字:自定义控件 创建 泛型 | 更新日期: 2023-09-27 17:56:15

我们希望创建一个WinForms自定义控件(派生自.net控件),并能够将其从设计器视图中的工具箱中拖放。但是,每当我们有一个带有泛型的控件时,我们都无法做到这一点,因为当设计器尝试创建类的实例时,出于显而易见的原因,它不知道该实例必须是什么类型。

有人知道解决这个问题的方法吗?

提前致谢

======

编辑===

========

我们想做的是举个例子:

public class MyDataGridView<T> : DataGridView where T : class{
...
}

通过删除泛型,我们可以在设计器中看到预览,就好像它是普通的 DataGridView 一样,但正如我上面用泛型解释的那样,我们无法使用该设计器。

使用泛型创建自定义控件

我遇到了同样的问题,结果是:不要在设计器视图中使用泛型控件!可以通过编程方式创建它的实例,但没有预览。当您添加显式设置泛型参数的派生类时,也许它会起作用。