2017年5月29日月曜日

パネルの子コントロールにパネルをたくさん追加するときにスクロールバーが出ないことがある

小一時間悩んでしまったのでメモ。

原因:Anchor.Top を指定しなかった。

C#でパネルコントロール(親パネル)の配下に動的にパネルコントロール(子パネル)を追加しようと実装してた。

で、こういう風にしたかったんです。













ついでに、「親パネルの横幅が変わったら、子パネルもついていってほしいなあ」と思ったんです。
こんな風に。













安直に「Anchor使えばいいかな!」と思って Left | Right を設定したところ...













子パネルの位置が勝手にずれた!親パネルはスクロールバーが消えた!

まあ、こんな風にデザイナー画面で見ていればすぐにわかったような気もするんだけど、実際は子パネルはプログラムで動的に増減するコントロールだったり、Anchorの暗黙の規定値がTop | Left だったり。
Anchor.Topの指定が無くなったのが原因だと気づくのに結構時間かかってしまった...。

0 件のコメント:

コメントを投稿