在C#中的for循环名称上设置“left”属性

时间:2011-10-20 12:42:28

标签: c#

            for (int i = 1; i < 3; i++)
            {
                int randomSpeed = RandomNumber(2, 10);

                 "apa" + i.Left -= randomSpeed;
            }

看看"apa" + i.Left -= randomSpeed;这是错误的。

我有PictureBox,名称为apa1,apa2和apa3。

我想设置名称的左侧apa + i

如何在每个循环中将Left设置为随机速度?

3 个答案:

答案 0 :(得分:4)

由于您拥有有限数量的控件,它可能更容易做到:

foreach (var control in new[] { apa1, apa2, apa3 }) 
{
    int randomSpeed = RandomNumber(2, 10);
    control.Left -= randomSpeed;
}

答案 1 :(得分:3)

您必须将它们放入数组中。加int s没有left属性。

PictureBox[] apas = new PictureBox[] { apa1, apa2, apa3 };

        for (int i = 0; i < apas.Length; i++)
        {
            int randomSpeed = RandomNumber(2, 10);

             apas[i].Left -= randomSpeed;
        }

答案 2 :(得分:2)

您想要更改名为(“apa”+ i)的控件的Left属性,对吗?

你可以Find控件:

(PictureBox)this.Controls.Find("apa" + i, true)[0].Left -= randomSpeed

不要忘记添加错误检查。