如何向表单动态添加(未知类型)控件?

时间:2010-01-15 22:29:38

标签: c# winforms controls

您好我想使用常规方法向我的表单添加控件,如下所示:

void addcontrol(Type quien)
{
    this.Controls.Add(new quien);            
}

private void btnNewControl_Click(object sender, EventArgs e)
{
    addcontrol(typeof(Button));
}

这可能吗?

2 个答案:

答案 0 :(得分:7)

您可以使用Activator.CreateInstance

从类型实例创建新实例
void AddControl(Type controlType)
{
    Control c = (Control)Activator.CreateInstance(controlType);
    this.Controls.Add(c);
}

制作通用版本会更好:

void AddControl<T>() where T : Control, new()
{
    this.Controls.Add(new T());
}

答案 1 :(得分:1)

这肯定有用

void addcontrol(Control ctl)
{
    this.Controls.Add(ctl);            
}

private void btnNewControl_Click(object sender, EventArgs e)
{
    addcontrol(new Button());
}