|
■No54126 (まっさ さん) に返信 > TableLayoutPanelをWindowsFormに配置しても、最大化したときに > 、それが中央に来ないんです。
コントロールの配置によっては、TableLayoutPanel を使う必要が無いケースもあります。 Anchor プロパティを利用して、フォームサイズに合わせて自動的にサイズや位置が 補正されるようにしてみてください。
Anchor を使うと、フォームの端とコントロールの端との距離が固定されます。
たとえば、フォームにボタンをひとつだけ配置してみてください。 既定では左/上がロックされており、フォームがリサイズされた場合でも、 常にコントロールの座標もサイズも変化しない状態になっています。
ここで、Anchorを上下左右すべてロックしておくと、フォームの端から コントロールまでの距離がそれぞれ固定化されるため、上下左右に 伸び縮みするような効果が得られます。 (この場合、Dock と Margin を使って同じような動作を得ることもできます)
逆に、Anchor でどこも固定しない(None)場合には、コントロールは リサイズされませんが、位置が自動的に変化するようになります。
コントロールの配置状況によっては、TableLayout を使った方が配置しやすい場合もあります。 TableLayout を使った場合、セル内のコントロールの Anchor プロパティは、 Top, Left の場合 → セルの左上に配置。サイズはコントロールの Size で固定。 None の場合 → セルの中央に配置。サイズはコントロールの Size で固定。 全指定の場合 → セルいっぱいに配置。コントロールの Size は無視される。 のように動作します。セル内に配置したコントロールについて、周辺に少し余白を 持たせたい場合には、Margin プロパティを指定しておいてください。
また、TableLayout 自体の Anchor プロパティも忘れずに設定しておいてください。
|