使用变量更改对象的 属性? C#/Visual Studio

Changing The Property Of An Object Using Variables? C#/Visual Studio

好的,我有 100 个按钮,我需要根据 while 循环中的条件更改颜色。它们被命名为 button1、button2、button3 等。在第一次循环(迭代?)期间,我需要编辑 button1,下一次编辑 button2,第三次编辑 button3,等等。

我想我可以做一个等于 "button" 的字符串,加上循环次数并改变颜色。

String ButtonNumber = "button" + i; 其中 i = 循环次数

当我尝试使用 ButtonNumber.BackColor = Color.Red; 编辑颜色时,它不允许我这样做,因为它没有像对待按钮那样对待 ButtonNumber,而是像对待字符串一样。我该如何做到这一点?谢谢! (这几乎是我第一次编程)

考虑使用 Controls.Find 按名称查找控件,然后您可以更改它的属性:

for (int i = 1; i <= 100; i++)
{
    var buttonName = string.Format("button{0}", i);

    var foundControl = Controls.Find(buttonName, true).FirstOrDefault();

    if (foundControl != null)
    {
        // You can now set any common control property using the found control
        foundControl.BackColor = Color.Red;

        // If you need to set button-specific properties (i.e. properties
        // that are not common to all controls), then cast it to a button:
        var buttonControl = foundControl as Button;

        if (buttonControl != null)
        {
            buttonControl.AutoEllipsis = true;
        }
    }
}