header
CodePanic! > C#.NET Tips > 今ここ

■MDI子ウィンドウをタブ表示にして切り替える

MDI子ウィンドウをタブ表示にする方法です。
VisualStudioのようにウィンドウをタブ表示にしたいことがあると思いますが
ちょっと工夫して擬似的にこれを実現する方法を書いてみます。

完成のサンプルはこんな感じです

mdi_tab.jpg(52390 byte)

作り方はTabコントロールを貼り付けているだけなのですが、コツは

1.MDI子ウィンドウが1つ以上ある時だけTabコントロールを表示する
2.Tabコントロールのタブ部分のみ表示する
3.MDI子ウィンドウをTabコントロール上に配置するのではない

です。

あとは
・TabコントロールのSelectedIndexChangedイベントハンドラでActiveな子ウィンドウを切り替え
・親FormのMdiChildActivateイベントハンドラでTabコントロールの選択状態を変更

などの処理を自分で書きます。

これを実現する有料コンポーネントなども見かけましたが
手作りで近いものをこの方法で作れると思います。




Copyright © 2008.07 - shougo suzaki