0

Я создал TableLayoutPanel со 100 слотами (10x10). В каждой ячейке я создал новый TableLayoutPanel. Затем я создал массив TableLayoutPanel[,] tb = new TableLayoutPanel[10,10];Назначение каждого элемента управления в TableLayoutPanel для двумерного массива

Так что теперь я хочу цикл по каждой ячейке основной (10х10) TableLayoutPanel и назначить каждому tablelayoutpanel в каждой ячейке к ячейке памяти в 2D массива.

Я занимался мозговым штурмом и поиском в Интернете и получил подсказку о том, что это будет включать в себя две петли 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? 
        } 
       } 

у меня нет для каждого цикла, но можно сделать назначение в этом двойном цикле? Как я могу указать вновь созданный TableLayoutPanel, чтобы назначить его в массиве? Спасибо, ребята.

ответ

0

Итак, я нашел способ сделать это, используя вложенные 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++; 
           } 
          } 
         } 
Смежные вопросы