簡體   English   中英

創建嵌套TableLayoutPanel時出現的問題

[英]Issue while creating Nested TableLayoutPanel

我嘗試實現嵌套的TableLayoutPanel。 我嘗試在父TableLayoutPanel內部動態創建/加載子TableLayoutPanel。 為此,我采用父TableLayoutPanel並從Visual Studio工具箱中繪制它。 一個動態創建子TableTablePanel的DropDownList當選定的索引更改被觸發時,我為dropdownlist分配了一些值,例如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時格式不正確

我想您想填充每個子面板,因此需要添加objTableLayoutPanel.Dock=DockStyle.Fill;

TableLayoutPanel objTableLayoutPanel = new  TableLayoutPanel(); 
objTableLayoutPanel.Dock = DockStyle.Fill;
parentTableLayoutPanel.Controls.Add(objTableLayoutPanel, i, j);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM