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

普通の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#へ戻る

【C#】MDIフォームにリサイズ可能なPanelを設置する」への2件のフィードバック

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

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください