Web検索はbingがおすすめ!

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を愛用
掲載日: 2012-05-20
iPentec all rights reserverd.