我有一個TableLayoutPanel,佔用整個區域,在碼頭填充。我創建了一個3乘3表/網格。我想設置中間單元格的高度和寬度,然後讓其他所有元素都是自動調整大小。這樣中間單元格中的內容位於容器的中心。C#Winforms中心內容
它看起來像我正在做這個錯誤的方式。集中容器(面板)中的內容的最佳方式是什麼?
我有一個TableLayoutPanel,佔用整個區域,在碼頭填充。我創建了一個3乘3表/網格。我想設置中間單元格的高度和寬度,然後讓其他所有元素都是自動調整大小。這樣中間單元格中的內容位於容器的中心。C#Winforms中心內容
它看起來像我正在做這個錯誤的方式。集中容器(面板)中的內容的最佳方式是什麼?
使用設計中,中心的行和列設置爲絕對的,其餘的50%。
試試這個:
在TableLayoutPanel中的右上方,有一個箭頭。點擊它,然後轉到「編輯行和列...」。指定中間行和中間列尺寸(百分比或絕對像素)。
設置第一列和最後一列以及Percent
模式的第一行和最後一行,中間列和行設置爲Autosize
。
這將使中心單元始終居中並適應其內容大小。
下面是一些代碼來設置手動表:
tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50.0f));
tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
tableLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50.0f));
tableLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 50.0f));
tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
tableLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 50.0f));
試着簡單地將內容放置在父容器的中心,然後關閉所有錨定(具體而言,默認的頂部和左側)。它現在基本上應該是中心的。
如果您需要居中控制,那麼您不必使用TableLayoutPanel。只需將控件添加到面板,在設計器中手動居中並移除所有錨點。
還有類似的線程:Centering controls within a form in .NET (Winforms)?