在设计时添加通用Windows窗体UserControl

时间:2019-03-30 01:24:00

标签: c# winforms generics user-controls

我已经创建了一个通用的用户控件,如下所示:

public class MyControl<T>: TabControl
{

}

如果T是原始类型,那么我将使我的用户控件成为非泛型类型,并且将给用户一个选项作为属性来选择类型,但是T可以是任何类类型

以编程方式添加时,我的usercontrol效果很好,但是,当我从工具箱添加它时,存在3个问题:

  1. 添加后显示空白控件(不是TabControl

我希望看到一个正常的TabControl,并且它没有通用性

  1. 我必须转到Form.Designer.cs文件并更改其声明以匹配我想要的类型

喜欢:

private MyControl myControl1;

private MyControl<AClass> myControl1;

this. myControl1 = new MyControl();

this. myControl1 = new MyControl<AClass>();

我知道,添加控件后,它无法预测类的种类,我并不期待魔术,但是有没有一种方法,使用户不必在每次添加控件时都去找设计师并以某种方式解决财产问题?

  1. 在Designer.cs中进行更改后,表单设计器会显示错误,而无法显示设计器。

这让我感到不安,为什么即使拥有一个通用声明也会对设计人员造成错误(尽管在运行该应用程序时它可以毫无问题地运行)。

0 个答案:

没有答案