如何在c#中创建一个添加控件的函数?
本文关键字:添加 一个 控件 函数 创建 | 更新日期: 2023-09-27 18:17:20
如何使一个函数有1个参数接收控件的类型,如(按钮,组框,面板,文本框,标签等)
private void CreateControl()
{
Button myButton=new Button();
this.Controls.Add(myButton);
}
我需要放置一个参数来指定控件的类型,而不总是一个按钮。
请帮
如果你想传递type你可以通过generic:
// Probably, you'd rather return T (created control), not void
public void CreateControl<T>()
where T: Control, new() {
this.Controls.Add(new T());
}
…
CreateControl<Button>();
如果您不想使用反射使事情复杂化,您可以创建一个enum
并将其作为参数发送:
public enum ControlType
{
Button,
Label,
TextBox,
//....
}
那么,你的方法调用将是
private void CreateControl(ControlType control)
{
switch(control)
{
case Button :
Button myButton=new Button();
this.Controls.Add(myButton);
break;
//case etc
}
}
Control类是所有Winforms控件的基类。您可以将参数设置为基类型,但它也将接受更多派生类型。
试题:
public void CreateControl(Control control)
{
this.Controls.Add(control);
}