MDI アプリケーションの作成 - シンプルなMDIアプリケーションの作成方法 - C#
単純なMDIフォームのアプリケーションを作成します。
Winformアプリケーションプロジェクトを新規作成します。
UIの準備
メインフォームのデザイナを表示します。初期状態では下図の外観のフォームが表示されています。
プロパティウィンドウを表示します。プロパティの一覧から"IsMdiContainer"プロパティを探し、値を"True"に変更します。
"IsMdiContainer"プロパティをTrueに変更するとフォームデザイナでのフォームの外観が下図のように変わります。
MDI子フォームを新規作成します。フォームを新規作成しプロジェクトに追加します。
コード
以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SimpleMDIApllication
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_Load(object sender, EventArgs e)
{
//this.IsMdiContainer = true;
FormChild fc = new FormChild();
fc.MdiParent = this;
fc.Show();
}
}
}
解説
MDI親ウィンドウのLoadイベントで子フォームのインスタンスを作成します。フォームをMDI子フォームに設定するにはフォームの"MdiParent"にMDI親ウィンドウを設定します。今回は自身のフォームがMDI親ウィンドウとなるためMdiParentプロパティにthisを設定しています。設定後Showメソッドによりフォームを表示します。
実行結果
プロジェクトを実行します。実行後下図のウィンドウが表示されます。MDI親フォーム内に子フォームが表示されています。
MDI子フォームの右上の最大化ボタンをクリックします。MDI子ウィンドウが最大化されます。(下図参照)
MDI子フォームのアイコン化ボタンを押すと下図のようにフォームがアイコン化されます。
MDI親フォームを閉じるとMDI子フォームも閉じられアプリケーションが終了します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用