【发布时间】:2020-01-03 17:56:22
【问题描述】:
我需要使用泛型创建自定义用户控件,因为我有一个 BindingSource 和 T 类型的数据源
public partial class ABMControl<T> : UserControl
{
public ABMControl()
{
InitializeComponent();
this.bindingSource.Datasource = typeof(T);
}
}
在表单设计器中,自定义用户控件不会出现在工具箱中,因为它是通用的。 解决办法是什么?
【问题讨论】:
-
从工具箱中删除控件时,您是在命令设计者创建该控件的实例。您不能创建
GenericControl<T>的实例。相反,您需要一个GenericControl<SomeClass>的实例。因此,为什么通用控件没有出现在工具箱中是完全有道理的,因为它在设计器中没有用处。 -
同样从 VS2015.1 开始,设计器展示了具有通用基类的类,没有任何问题。因此,较新版本的 VS 不再需要第一条评论中链接的解决方法。
标签: c# winforms generics user-controls windows-forms-designer