我无法弄清楚是否可以执行以下操作:我想使用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循环与数组索引一起工作外,没有产生其他结果。

如果很重要,则窗体上已经存在PictureBoxes(其中有12个),因此我想弄清楚如何将它们与数组关联,而不是重新设计窗体。

编辑:我想有两个数组,一个解决方案将所有PictureBoxes放在窗体上并将其转储到一个数组中不会解决我的特定问题。我希望能够自行确定与给定数组关联的对象数。

最佳答案

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

this.Controls["picCard" + 7]


这仅适用于直接后代。如果控件是嵌套的,则必须使用Find,这会稍慢一些(对于非性能密集型应用程序应忽略不计)。

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

09-05 02:30
查看更多