c# - 使用泛型创建自定义控件

标签 c# .net winforms user-controls custom-controls

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

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

提前致谢

======edit===========

我们想做的是举个例子:

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

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

最佳答案

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

关于c# - 使用泛型创建自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563612/

相关文章:

C# 调整文本框大小以适应内容

c# - 验证 Google Id token

c# - 什么时候使用带有 xsl 的 xml 而不是 HTML?

c# - 如何将 XML 数据传递给在 Web 浏览器控件中运行的网页?

winforms - 无论 WordWrap 设置如何,TextBox 控件都将行限制为 1024 个字符。如何增加?

c# - 字符串 webPath = folderPath.Replace ("\\", "/");

c# - i++ 和++i 有什么区别?

c# - 如何在给定 RowID 和要更新的值的情况下更新表行。 MVC C# 林克

c# - 文本框 - 绑定(bind)的属性值不会立即更新

c# - 检测反序列化对象是否缺少 Json.NET 中 JsonConvert 类的字段