如何在c#中创建一个添加控件的函数?

本文关键字:添加 一个 控件 函数 创建 | 更新日期: 2023-09-27 18:17:20

如何使一个函数有1个参数接收控件的类型,如(按钮,组框,面板,文本框,标签等)

private void CreateControl()
{
   Button myButton=new Button();
   this.Controls.Add(myButton);
}

我需要放置一个参数来指定控件的类型,而不总是一个按钮。

请帮

如何在c#中创建一个添加控件的函数?

如果你想传递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);
}