将 TableLayoutPanel 中的每个控件分配给二维数组

Assigning each Control in a TableLayoutPanel to a 2D Array

我创建了一个有 100 个插槽 (10x10) 的 TableLayoutPanel。在每个单元格中,我创建了一个新的 TableLayoutPanel。 然后我创建了一个数组 TableLayoutPanel[,] tb = new TableLayoutPanel[10,10];

所以现在我想遍历主 (10x10) TableLayoutPanel 的每个单元格,并将每个单元格中的每个 tablelayoutpanel 分配给二维数组中的内存槽。

我一直在网上集思广益和搜索,得到的暗示是这将涉及两个 for 循环和一个 foreach 循环,但我对什么去哪里感到困惑。

根据我的编码,我认为最好的赋值位置是在这段代码中:

                for (int i = 0; i < 10; i++)
                {
                    for (int j = 0; j < 10; j++)
                    {
                        mainTPL.Controls.Add(new TableLayoutPanel
                        {
                            Name = "tbl" + i + "-" + j,
                            CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset,
                            Size = new Size(70, 70),
                            RowCount = 2,
                            ColumnCount = 3,
                        }, i, j);
                      //Could I do the assignment right here?
                    }
                }

我没有 for each 循环,但是可以在那个双循环中进行赋值吗?我如何指定新创建的 TableLayoutPanel 将其分配到数组中? 谢谢大家。

所以我找到了一种使用嵌套 if 语句来完成此操作的方法。我敢打赌还有其他方法可以做到这一点,但这目前对我有用。希望这对某人有所帮助。

TableLayoutPanel[,] grid = new TableLayoutPanel[10, 10];
    int k=0,l=0;   
     foreach (TableLayoutPanel c in mainTPL.Controls)
                        {  
                            if(k<10 && l<10)
                            {
                                 grid[k, l] = c;
                                 if (l != 9)
                                     l++;
                                 else
                                 {
                                        l = 0;
                                        k++;
                                 }
                            }
                        }