TableLayoutPanelとControl.Dock Fillの話

 TableLayoutPanelを使ってレイアウトを構成し、各コントロールにDock Fillを指定しても、思い通りに自動リサイズ?(伸張)されないことがある。(topまたはbottomしか伸びないなど。)
 解決するまで地味に苦労したのでメモ。

Control.Dock

 全てFill。*1

列と行のスタイル*2

 固定したいコントロールは絶対サイズ(ピクセル)、伸張させたいコントロールはパーセントで指定。

たとえば

 TableLayoutPanelに3つのコントロールを3行1列で配置し、2行目だけを伸張させるには、1行目と3行目を絶対サイズ(ピクセル)で指定し、2行目の値を「100%」とする。
 とりあえず、この方法で出来た。

*1:よく分からないので。

*2:VS2008ならTableLayoutPanelタスク→行および列の編集、表示で行を選択。