通过函数添加按钮

本文关键字:按钮 添加 函数 | 更新日期: 2023-09-27 18:34:40

我想添加一个按钮,使用一个将所有参数放在一行中的函数,以保持它干净。但是如果我尝试通过 This.Controls.Add 添加按钮,我会收到一个错误,因为该功能是静态的。我应该写什么而不是This(类似于Form1.Controls.Add(,这样我就可以在一个函数中做所有事情?

通过函数添加按钮

您可以将表单作为静态函数的参数:

public static void CreateButton(Form targetForm, param1, param2, ...) {
    Button b = new Button();
    ...
    targetForm.Controls.Add(b);
}

。但是,除非此方法将用于将按钮添加到各种表单,否则我看不到像这样将其静态化的好处。 这似乎是一种 OO 反模式。 我可能会让它成为非静态的并使用this.

我只会让你的函数返回按钮:

//Usage
this.Controls.Add(CreateButton(...));
//Function def 
public static Button CreateButton(...)
{
   Button createdButton = new Button();
   ...
   return createdButton;
}
赋值

返回赋值的结果(以便您可以链接它们(。因此,要内联赋值:

//With a variable (I did *not* say it was good practice to do this)
this.Controls.Add(myVar = CreateButton(...));