使用for循环C#初始化数组和变量名称

时间:2012-11-01 23:08:41

标签: c# arrays object for-loop picturebox

我无法确定是否可以执行以下操作:我想使用for循环初始化PictureBox数组中的所有值。我还希望指定的值使用循环迭代器。例如:

        PictureBox[] picUserCards = new PictureBox[6];

        for (int i = 0; i < picUserCards.Length; i++)
        {
            // Below is similar to what I have done in VBA 
            picUserCards[i] = picCard + (i + 1);
        }

正如你所看到的,C#会给我一个错误,说明在这种情况下picCard不存在。但是,在VB / VBA中,它会为我连接字符,给我picUserCards [0] = picCard1。

这可能是一个非常简单的答案,我希望它已经没有几十次回答,但是我的前期搜索除了如何使用For循环来处理数组的索引之外没有产生任何其他东西。 / p>

如果重要的话,PictureBox已经存在(其中12个)在表单上,​​所以我想弄清楚如何将它们与数组相关联,而不是重新设计我的表单。

编辑:我想要有两个数组,一个解决方案,它将表单上的所有PictureBoxs转储并将它们转储到一个数组中,这无法解决我的特定问题。我希望能够自己确定与给定数组关联的对象数量。

2 个答案:

答案 0 :(得分:2)

我假设您正在使用具有Controls属性的容器:

var picUserCards = this.Controls.OfType<PictureBox>().ToArray();

答案 1 :(得分:2)

您可以通过字符串名称引用子控件:

this.Controls["picCard" + 7]

这仅适用于直系后代。如果你的控件是嵌套的,你将不得不使用Find,这会慢一点(对于非性能密集型应用程序应该可以忽略不计)。

this.Controls.Find("picCard" + 7, true)