親フォーム内に子フォームの表示 | C#

NO IMAGE
         

この記事は1年以上前に更新されたものです。内容が古い可能性がありますのでご注意ください。

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#


 

手順

1.親となるフォームを作成します。(MainFormとします)

親フォーム(MainForm)の「IsMDIContainer」プロパティをTrueに設定。

2.子になるフォームを作成します。(ChildrenFormとします)

3.イベントに処理追加

今回は親フォームのメニューから子フォームを呼び出すので、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;

何か他にある気がするけど、、、今回は以上。