親フォーム内に子フォームの表示 | C#
MDIアプリケーション
Multiple Document Interface
「マルチ・ドキュメント・インタフェース」と言うそうです。
http://ja.wikipedia.org/wiki/Multiple_Document_Interface
作成中のアプリにて使うことがあったのでメモ。
参考にさせて頂いたサイト:http://dobon.net/vb/dotnet/form/mdiapplication.html
環境
Visual Studio 2013
.NET Framework 4.0
C#
手順
- 親となるフォームを作成します。(MainFormとします)
- 親フォーム(MainForm)の「IsMDIContainer」プロパティをTrueに設定。
- 子になるフォームを作成します。(ChildrenFormとします)
- イベントに処理追加
今回は親フォームのメニューから子フォームを呼び出すので、Menu.Clickイベント
に追加。
// 子フォームのインスタンス
ChildrenForm cdnForm = new ChildrenForm();
// 親フォームの子として設定
cdnForm.MdiParent = this;
// 子フォームの表示
cdnForm.Show();
フォーム表示時に最大化する
子フォームのFormWindowStateプロパティを設定にて完了!・・・と思っていたら、上手く動かず。
子フォームは最大化されたように認識されて、最小化、最大化、閉じるボタンは親の下に揃っているが
肝心なレイアウトが最大化されていない・・・。
やむを得ず、子フォームを表示した後に最大化することにしました。
// 子フォームのインスタンス
ChildrenForm cdnForm = new ChildrenForm();
// 親フォームの子として設定
cdnForm.MdiParent = this;
// 子フォームの表示
cdnForm.Show();
// フォーム最大化
cdnForm.WindowState = FormWindowState.Maximized;
何か他にある気がするけど、、、今回は以上。