您好我想使用常规方法向我的表单添加控件,如下所示:
void addcontrol(Type quien)
{
this.Controls.Add(new quien);
}
private void btnNewControl_Click(object sender, EventArgs e)
{
addcontrol(typeof(Button));
}
这可能吗?
答案 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());
}