Проблема при создании Nested TableLayoutPanel

Я пытаюсь реализовать Nested TableLayoutPanel. Я пытаюсь динамически создать/загрузить дочернюю панель TableLayoutPanel внутри родительской панели TableLayoutPanel. для этого я беру родительскую панель TableLayoutPanel и рисую ее из набора инструментов Visual Studio. один DropDownList для динамического создания дочерней TableLayoutPanel. Я назначаю некоторые значения раскрывающемуся списку, например 2 * 2,2 * 3,3 * 3,4 * 4, когда выбранное изменение индекса является огнем, рисует дочернюю TableLayoutPanel. Мой код ниже

private void cmbRowsColumns_SelectedIndexChanged(object sender, EventArgs e)
{   
  var selectedPair = new KeyValuePair<string, string>();
  selectedPair = (KeyValuePair<string, string>)cmbRowsColumns.SelectedItem;
  string[] rowcolumn = selectedPair.Value.Split('*');
  string strRowCount = rowcolumn[0];
  int rowCount = Convert.ToInt32(strRowCount);
  string strColumnCount = rowcolumn[1];
  int columnCount = Convert.ToInt32(strColumnCount);
  DynamicallyGenerateColumn(rowCount, columnCount);
}


private void DynamicallyGenerateColumn(int rowCount, int columnCount)
{
  parentTableLayoutPanel.Controls.Clear();
  parentTableLayoutPanel.ColumnStyles.Clear();
  parentTableLayoutPanel.RowStyles.Clear();
  parentTableLayoutPanel.ColumnCount = columnCount;
  parentTableLayoutPanel.RowCount = rowCount;
  for (int i = 0; i < columnCount; i++)
    {
      parentTableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
      for (int j = 0; j < rowCount; j++)
        {
        if (i == 0)
         {
          parentTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize));
         }
          TableLayoutPanel objTableLayoutPanel = new  TableLayoutPanel();                  
          parentTableLayoutPanel.Controls.Add(objTableLayoutPanel, i, j);
       }
     }
 }

введите здесь описание изображенияно на самом деле проблема в том, что когда я создаю дочернюю панель TableLayoutPanel, форматирование неправильное


person Community    schedule 02.07.2013    source источник
comment
что не так? вы не видите ни одной дочерней панели или они указаны неправильно?   -  person Bolu    schedule 02.07.2013
comment
@Bolu Я хочу отобразить дочернюю панель TableLayoutPanel внутри правильно отформатированной родительской панели TableLayoutPanel.   -  person    schedule 02.07.2013
comment
Какой результат вы получаете на данный момент с кодом выше?   -  person Bolu    schedule 02.07.2013
comment
такого рода проблемы должны нуждаться в снимке экрана для описания.   -  person King King    schedule 02.07.2013
comment
@KingKing Я добавил снимок экрана, чтобы получить более четкое представление   -  person    schedule 02.07.2013
comment
@Bolu, пожалуйста, проверьте результат, который я загружаю через снимок экрана ...   -  person    schedule 02.07.2013
comment
@Bolu неправильное выравнивание дочерней TableLayoutPanel   -  person    schedule 03.07.2013


Ответы (1)


Я думаю, вы хотите заполнить каждую дочернюю панель, поэтому вам нужно добавить objTableLayoutPanel.Dock=DockStyle.Fill;

TableLayoutPanel objTableLayoutPanel = new  TableLayoutPanel(); 
objTableLayoutPanel.Dock = DockStyle.Fill;
parentTableLayoutPanel.Controls.Add(objTableLayoutPanel, i, j);
person Bolu    schedule 02.07.2013
comment
выравнивание дочерней TableLayoutPanel неверно - person ; 03.07.2013
comment
Убедитесь, что другие настройки не перезаписывают DockStyle, как Anchor.... Поэтому переместите objTableLayoutPanel.Dock = DockStyle.Fill; чуть выше parentTableLayoutPanel.Controls.Add(objTableLayoutPanel, i, j); (убедитесь, что между ними нет других кодов и нет других настроек objTableLayoutPanel после того, как он был добавлен в parentTableLayoutPanel) и попробуйте - person Bolu; 03.07.2013
comment
в соответствии с вашими фрагментами кода я пытался изменить код, но он не работает - person ; 03.07.2013