将 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++;
}
}
}
我创建了一个有 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++;
}
}
}