私は、全体の領域を占め、ドックを埋めるTableLayoutPanelを持っています。私は3 x 3テーブル/グリッドを作成しました。私は中間のセルの高さと幅を設定し、それ以外はすべて自動サイズにします。この方法では、中央のセルのコンテンツがコンテナの中央にあります。C#Winformsの中心コンテンツ
私はこれを間違った方法で行っているようです。コンテナ(パネル)にコンテンツを配置する最も良い方法は何ですか?
私は、全体の領域を占め、ドックを埋めるTableLayoutPanelを持っています。私は3 x 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)?