普通のFormに実行中に幅や高さを変えられるパネルを設置する場合は、SplitContainerを配置すればOKですが、MDIフォーム↓に
SplitContainerを配置すると、
のようになり、MDIフォームの子フォームの配置する領域(濃いグレーの部分)がPanelで埋まってしまうため、MDIフォームの機能をなしてくれません。
そこで、この場合のみSplitterの登場となります。
以下、MDIフォームの右側にリサイズ可能はPanelを配置する例で示します。
まず、MDIフォームにPanelを配置します。
このPanelを右側にDockします。
すると、MDIフォームの右側にPanelが配置されます。
この状態だと、まだ、リサイズしてくれないので、次にSplitterを配置します。
すると、Splitterはデフォルトでは左側にDockされてしまうため、Dockプロパティを右(Right)に設定します。
Splitterが右側に配置された様子↓
この状態で実行すると、リサイズ可能なPanelとなります。
しかしながら、MSDNを見るとSplitterは互換性のために残してあるだけで、新規にプログラムを作るときは使わないようにと書いてあります。
いつまで、この方法が使えるかは、かなり怪しいところではありますが、現状、MDIフォームにリサイズできるパネルを配置するには、この方法しか無いと思われ。。
←C#へ戻る
コメント
SplitContainerを使ってうまくいかず悩んでいました。PanelとSplitterを組み合わせて使うとできるんですね~。助かりました。ありがとうございました。
ミキさん、コメント頂きありがとうございます。
私はMDIでパネル幅を可変にするには、この方法しか知らないのですが、あくまでもSpilitterが非推奨という事だけはご了承下さい。