我无法确定是否可以执行以下操作:我想使用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转储并将它们转储到一个数组中,这无法解决我的特定问题。我希望能够自己确定与给定数组关联的对象数量。答案 0 :(得分:2)
我假设您正在使用具有Controls
属性的容器:
var picUserCards = this.Controls.OfType<PictureBox>().ToArray();
答案 1 :(得分:2)
您可以通过字符串名称引用子控件:
this.Controls["picCard" + 7]
这仅适用于直系后代。如果你的控件是嵌套的,你将不得不使用Find
,这会慢一点(对于非性能密集型应用程序应该可以忽略不计)。
this.Controls.Find("picCard" + 7, true)