C#

【C#】MDIフォームにリサイズ可能なPanelを設置する

普通のFormに実行中に幅や高さを変えられるパネルを設置する場合は、SplitContainerを配置すればOKですが、MDIフォーム↓に

 

mdiフォームにリサイズ可能なPanelを設置する

 

SplitContainerを配置すると、

 

mdiフォームにリサイズ可能なPanelを設置する

 

のようになり、MDIフォームの子フォームの配置する領域(濃いグレーの部分)がPanelで埋まってしまうため、MDIフォームの機能をなしてくれません。

 

そこで、この場合のみSplitterの登場となります。

以下、MDIフォームの右側にリサイズ可能はPanelを配置する例で示します。

 

まず、MDIフォームにPanelを配置します。

 

mdiフォームにリサイズ可能なPanelを設置する

 

このPanelを右側にDockします。

 

mdiフォームにリサイズ可能なPanelを設置する

 

すると、MDIフォームの右側にPanelが配置されます。

 

mdiフォームにリサイズ可能なPanelを設置する

 

この状態だと、まだ、リサイズしてくれないので、次にSplitterを配置します。

すると、Splitterはデフォルトでは左側にDockされてしまうため、Dockプロパティを右(Right)に設定します。

 

mdiフォームにリサイズ可能なPanelを設置する

 

Splitterが右側に配置された様子↓

 

mdiフォームにリサイズ可能なPanelを設置する

 

この状態で実行すると、リサイズ可能なPanelとなります。

 

mdiフォームにリサイズ可能なPanelを設置する

 

しかしながら、MSDNを見るとSplitterは互換性のために残してあるだけで、新規にプログラムを作るときは使わないようにと書いてあります。

いつまで、この方法が使えるかは、かなり怪しいところではありますが、現状、MDIフォームにリサイズできるパネルを配置するには、この方法しか無いと思われ。。

 

C#へ戻る

コメント

  1. ミキ より:

    SplitContainerを使ってうまくいかず悩んでいました。PanelとSplitterを組み合わせて使うとできるんですね~。助かりました。ありがとうございました。

    • akira より:

      ミキさん、コメント頂きありがとうございます。
      私はMDIでパネル幅を可変にするには、この方法しか知らないのですが、あくまでもSpilitterが非推奨という事だけはご了承下さい。

タイトルとURLをコピーしました