通过循环动态分配按钮文本

Bir*_*man 1 c# button winforms

我试图通过使用如下所示的循环动态分配按钮控件文本:

int ButtonNumber = 1;

while (ButtonNumber < 10)
{
    //WHAT TO DO HERE!?
    ButtonNumber++;
}
Run Code Online (Sandbox Code Playgroud)

我想避免以下情况:

button1.Text = "";
button2.Text = "";
button3.Text = "";
button4.Text = "";
button5.Text = "";
button6.Text = "";
button7.Text = "";
button8.Text = "";
button9.Text = "";
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 10

理想的情况是,没有button1,button2等在第一位置的变量.有一个集合(例如a List<Button>):

private List<Button> buttons = new List<Button>();
Run Code Online (Sandbox Code Playgroud)

(编辑:你需要在某个地方填充这个,当然......)

然后在以后更新文本:

for (int i = 0; i < buttons.Count; i++)
{
    buttons[i].Text = "I'm button " + i;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这与设计师的表现并不十分相称.

可以通过ID获取控件,但我个人不会这样做.如果你真的想:

for (int i = 1; i <= 10; i++)
{
    Control control = Controls["button" + i];
    control.Text = "I'm button " + i;
}
Run Code Online (Sandbox Code Playgroud)