//////////////////////
// MDISkelton.cs
//////////////////////
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Reflection;		//Assemblyを使う為
using System.Resources;			//リソース関係クラス等の使用の為
using System.IO;				//Stream関係クラス等の使用の為

///////////////////////////
//エントリーポイントクラス
///////////////////////////
class MainApp
{
	[STAThread]
	public static void Main()
	{
		Application.Run(new MainWnd());
	}
}

///////////////////////
//メインフォームクラス
///////////////////////
public partial class MainWnd : Form
{
	//クラスメンバー変数
	ToolStrip toolStrip;						//ツールバー
	ToolStripButton[] toolStripButton;			//ツールバーボタン
	StatusStrip statusStrip;					//ステータスバー
	ToolStripStatusLabel[] tssl;				//ステータスバーラベル

	public MainWnd()
	{
		Assembly myOwn = Assembly.GetEntryAssembly();
		this.Icon = Icon.ExtractAssociatedIcon(myOwn.Location);	//プログラムアイコンをフォームにつける
		this.Load += new EventHandler(MainForm_Load);
		this.MdiChildActivate += new EventHandler(MainWnd_MdiChildActivate);
		this.Text = "MainWindow Name";
		this.ClientSize = new Size(640, 480);
		this.MinimumSize = new Size(480, 360);
		this.BackColor = SystemColors.Window;
		this.IsMdiContainer = true;
	}

	//WM_CREATE時処理
	private void MainForm_Load(object sender, EventArgs e)
	{
		//メニュー作成
		SetMenu();
		//ツールバーとステータスバー等コントロール作成
		SetControls();
	}

	//WM_CLOSE時処理
	protected override void OnFormClosing(FormClosingEventArgs e)
	{
		base.OnFormClosing(e);
		DialogResult dr = MessageBox.Show("終了しますか？", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
		if(dr == DialogResult.No)
		{
			e.Cancel = true;
		}
		//開いている子ウィンドウを総て閉じる
		foreach(Form frm in this.MdiChildren)
		{
   			frm.Close();
		}
	}

	//メニューの設定
	protected void SetMenu()
	{
		//メインメニュー作成
		MainMenu menu = new MainMenu();
		Menu = menu;
		//メニューアイテム付加
		MenuItem miFile = new MenuItem();		//「ファイル」メニュー
		miFile.Text = "ファイル(&F)";
		miFile.Index = 0;
		menu.MenuItems.Add(miFile);
		MenuItem miEdit = new MenuItem();		//「編集」メニュー
		miEdit.Text = "編集(&E)";
		miEdit.Index = 1;
		menu.MenuItems.Add(miEdit);
		MenuItem miWnd = new MenuItem();		//「ウィンドウ」メニュー
		miWnd.Text = "ウィンドウ(&W)";
		miWnd.Index = 2;
		miWnd.MdiList = true;
		menu.MenuItems.Add(miWnd);
		MenuItem miHelp = new MenuItem();		//「ヘルプ」メニュー
		miHelp.Text = "ヘルプ(&H)";
		miHelp.Index = 3;
		menu.MenuItems.Add(miHelp);
		MenuItem miNew = new MenuItem();		//「新規」メニューアイテム
		miNew.Text = "新規(&N)";
		miNew.Index = 0;
		miNew.Click += OnNew_Click;
		miNew.Shortcut = Shortcut.CtrlN;
		miFile.MenuItems.Add(miNew);
		MenuItem miOpen = new MenuItem();		//「開く」メニューアイテム
		miOpen.Text = "開く(&O)";
		miOpen.Index = 1;
		miOpen.Click += OnOpen_Click;
		miOpen.Shortcut = Shortcut.CtrlO;
		miFile.MenuItems.Add(miOpen);
		MenuItem miSave = new MenuItem();		//「保存」メニューアイテム
		miSave.Text = "保存(&S)";
		miSave.Index = 2;
		miSave.Click += OnSave_Click;
		miSave.Shortcut = Shortcut.CtrlS;
		miFile.MenuItems.Add(miSave);
		MenuItem miSaveAs = new MenuItem();		//「名前を付けて保存」メニューアイテム
		miSaveAs.Text = "名前を付けて保存(&A)";
		miSaveAs.Index = 3;
		miSaveAs.Click += OnSaveAs_Click;
		miSave.Shortcut = Shortcut.CtrlA;
		miFile.MenuItems.Add(miSaveAs);
		miFile.MenuItems.Add("-");				//セパレーター
		MenuItem miExit = new MenuItem();		//「終了」メニューアイテム
		miExit.Text = "終了(&X)";
		miExit.Index = 4;
		miExit.Click += OnExit_Click;
		miExit.Shortcut = Shortcut.CtrlX;
		miFile.MenuItems.Add(miExit);
		MenuItem miCut = new MenuItem();		//「切り取り」メニューアイテム
		miCut.Text = "切り取り(&T)";
		miCut.Index = 0;
		miCut.Click += OnCut_Click;
		miCut.Shortcut = Shortcut.CtrlT;
		miEdit.MenuItems.Add(miCut);
		MenuItem miCopy = new MenuItem();		//「コピー」メニューアイテム
		miCopy.Text = "コピー(&C)";
		miCopy.Index = 1;
		miCopy.Click += OnCopy_Click;
		miCopy.Shortcut = Shortcut.CtrlC;
		miEdit.MenuItems.Add(miCopy);
		MenuItem miPaste = new MenuItem();		//「貼り付け」メニューアイテム
		miPaste.Text = "貼り付け(&P)";
		miPaste.Index = 2;
		miPaste.Click += OnPaste_Click;
		miPaste.Shortcut = Shortcut.CtrlP;
		miEdit.MenuItems.Add(miPaste);
		miEdit.MenuItems.Add("-");				//セパレーター
		MenuItem miFont = new MenuItem();		//「フォント」メニューアイテム
		miFont.Text = "フォント(&F)";
		miFont.Index = 3;
		miFont.Click += OnFont_Click;
		miFont.Shortcut = Shortcut.CtrlF;
		miEdit.MenuItems.Add(miFont);
		miEdit.MenuItems.Add("-");				//セパレーター
		MenuItem miFind = new MenuItem();		//「検索」メニューアイテム
		miFind.Text = "検索(&F)";
		miFind.Index = 4;
		miFind.Click += OnFind_Click;
		miFind.Shortcut = Shortcut.CtrlF;
		miEdit.MenuItems.Add(miFind);
		MenuItem miReplace = new MenuItem();	//「置換」メニューアイテム
		miReplace.Text = "置換(&R)";
		miReplace.Index = 5;
		miReplace.Click += OnReplace_Click;
		miReplace.Shortcut = Shortcut.CtrlR;
		miEdit.MenuItems.Add(miReplace);
		MenuItem miCascade = new MenuItem();	//「重ねて並べる(&C)」メニューアイテム
		miCascade.Text = "重ねて並べる(&C)";
		miCascade.Index = 0;
		miCascade.Click += OnCascade_Click;
		miCascade.Shortcut = Shortcut.CtrlC;
		miWnd.MenuItems.Add(miCascade);
		MenuItem miTileVert = new MenuItem();	//「縦に並べる(&V)」メニューアイテム
		miTileVert.Text = "縦に並べる(&V)";
		miTileVert.Index = 1;
		miTileVert.Click += OnTileVert_Click;
		miTileVert.Shortcut = Shortcut.CtrlV;
		miWnd.MenuItems.Add(miTileVert);
		MenuItem miTileHorz = new MenuItem();	//「横に並べる(&H)」メニューアイテム
		miTileHorz.Text = "横に並べる(&H)";
		miTileHorz.Index = 2;
		miTileHorz.Click += OnTileHorz_Click;
		miTileHorz.Shortcut = Shortcut.CtrlH;
		miWnd.MenuItems.Add(miTileHorz);
		MenuItem miArrIcon = new MenuItem();	//「アイコンの整列(&I)」メニューアイテム
		miArrIcon.Text = "アイコンの整列(&I)";
		miArrIcon.Index = 2;
		miArrIcon.Click += OnArrIcon_Click;
		miArrIcon.Shortcut = Shortcut.CtrlI;
		miWnd.MenuItems.Add(miArrIcon);
		MenuItem miHowtoUse = new MenuItem();	//「使い方」メニューアイテム
		miHowtoUse.Text = "使い方(&U)";
		miHowtoUse.Index = 0;
		miHowtoUse.Click += OnHowtoUse_Click;
		miHelp.MenuItems.Add(miHowtoUse);
		MenuItem miVer = new MenuItem();		//「バージョン」メニューアイテム
		miVer.Text = "バージョン(&V)";
		miVer.Index = 1;
		miVer.Click += OnVersion_Click;
		miVer.Shortcut = Shortcut.CtrlV;
		miHelp.MenuItems.Add(miVer);
	}

	//ツールバーとステータスバー等コントロールの設定
	protected void SetControls()
	{
		//フォームのレイアウトを一時停止
		this.SuspendLayout();
		//ToolStripクラスインスタンスの生成
		this.toolStrip = new ToolStrip();
		//ツールバーのレイアウトを一時停止
		this.toolStrip.SuspendLayout();
		//ToolStripButton配列を作成
		this.toolStripButton = new ToolStripButton[12];
		//本プログラムの埋め込みリソースのリソースマネージャーを作成
		Assembly asm = Assembly.GetExecutingAssembly();
		ResourceManager rm = new ResourceManager("FormMDISkelton", asm);
		//ツールバービットマップの読み込み
		ImageList imgList = new ImageList();
		imgList.ImageSize = new Size(16, 15);
		imgList.Images.AddStrip((Bitmap)rm.GetObject("ToolBar"));
		imgList.TransparentColor = Color.White;
		//ToolStripButton[0]を作成
		this.toolStripButton[0] = new ToolStripButton();
		this.toolStripButton[0].Text = "新規作成(&N)";							//テキスト設定
		this.toolStripButton[0].Image = (Bitmap)imgList.Images[0];				//画像設定
		this.toolStripButton[0].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[0].Click += OnNew_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[0]);						//ボタンを追加
		//ToolStripButton[1]を作成
		this.toolStripButton[1] = new ToolStripButton();
		this.toolStripButton[1].Text = "開く(&O)";								//テキスト設定
		this.toolStripButton[1].Image = (Bitmap)imgList.Images[1];				//画像設定
		this.toolStripButton[1].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[1].Click += OnOpen_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[1]);						//ボタンを追加
		//ToolStripButton[2]を作成
		this.toolStripButton[2] = new ToolStripButton();
		this.toolStripButton[2].Text = "保存(&S)";								//テキスト設定
		this.toolStripButton[2].Image = (Bitmap)imgList.Images[2];				//画像設定
		this.toolStripButton[2].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[2].Click += OnSave_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[2]);						//ボタンを追加
		//セパレーターを挿入
		this.toolStrip.Items.Add(new ToolStripSeparator());
		//ToolStripButton[3]を作成
		this.toolStripButton[3] = new ToolStripButton();
		this.toolStripButton[3].Text = "終了(&X)";								//テキスト設定
		this.toolStripButton[3].Image = (Bitmap)imgList.Images[3];				//画像設定
		this.toolStripButton[3].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[3].Click += OnExit_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[3]);						//ボタンを追加
		//セパレーターを挿入
		this.toolStrip.Items.Add(new ToolStripSeparator());
		//ToolStripButton[4]を作成
		this.toolStripButton[4] = new ToolStripButton();
		this.toolStripButton[4].Text = "切り取り(&T)";							//テキスト設定
		this.toolStripButton[4].Image = (Bitmap)imgList.Images[4];				//画像設定
		this.toolStripButton[4].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[4].Click += OnCut_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[4]);						//ボタンを追加
		//ToolStripButton[5]を作成
		this.toolStripButton[5] = new ToolStripButton();
		this.toolStripButton[5].Text = "コピー(&C)";							//テキスト設定
		this.toolStripButton[5].Image = (Bitmap)imgList.Images[5];				//画像設定
		this.toolStripButton[5].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[5].Click += OnCopy_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[5]);						//ボタンを追加
		//ToolStripButton[6]を作成
		this.toolStripButton[6] = new ToolStripButton();
		this.toolStripButton[6].Text = "貼り付け(&P)";							//テキスト設定
		this.toolStripButton[6].Image = (Bitmap)imgList.Images[6];				//画像設定
		this.toolStripButton[6].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[6].Click += OnPaste_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[6]);						//ボタンを追加
		//セパレーターを挿入
		this.toolStrip.Items.Add(new ToolStripSeparator());
		//ToolStripButton[7]を作成
		this.toolStripButton[7] = new ToolStripButton();
		this.toolStripButton[7].Text = "フォント(&F)";							//テキスト設定
		this.toolStripButton[7].Image = (Bitmap)imgList.Images[7];				//画像設定
		this.toolStripButton[7].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[7].Click += OnFont_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[7]);						//ボタンを追加
		//セパレーターを挿入
		this.toolStrip.Items.Add(new ToolStripSeparator());
		//ToolStripButton[8]を作成
		this.toolStripButton[8] = new ToolStripButton();
		this.toolStripButton[8].Text = "検索(&F)";								//テキスト設定
		this.toolStripButton[8].Image = (Bitmap)imgList.Images[8];				//画像設定
		this.toolStripButton[8].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[8].Click += OnFind_Click;							//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[8]);						//ボタンを追加
		//ToolStripButton[9]を作成
		this.toolStripButton[9] = new ToolStripButton();
		this.toolStripButton[9].Text = "置換(&R)";								//テキスト設定
		this.toolStripButton[9].Image = (Bitmap)imgList.Images[9];				//画像設定
		this.toolStripButton[9].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[9].Click += OnReplace_Click;						//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[9]);						//ボタンを追加
		//セパレーターを挿入
		this.toolStrip.Items.Add(new ToolStripSeparator());
		//ToolStripButton[10]を作成
		this.toolStripButton[10] = new ToolStripButton();
		this.toolStripButton[10].Text = "使い方(&U)";							//テキスト設定
		this.toolStripButton[10].Image = (Bitmap)imgList.Images[10];			//画像設定
		this.toolStripButton[10].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[10].Click += OnHowtoUse_Click;						//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[10]);						//ボタンを追加
		//ToolStripButton[11]を作成
		this.toolStripButton[11] = new ToolStripButton();
		this.toolStripButton[11].Text = "バージョン情報(&V)";					//テキスト設定
		this.toolStripButton[11].Image = (Bitmap)imgList.Images[11];			//画像設定
		this.toolStripButton[11].DisplayStyle = ToolStripItemDisplayStyle.Image;	//画像表示のみ
		this.toolStripButton[11].Click += OnVersion_Click;						//Clickイベントハンドラ追加
		this.toolStrip.Items.Add(this.toolStripButton[11]);						//ボタンを追加
		//ツールバーの設定
		this.Controls.Add(this.toolStrip);
		//ツールバーのレイアウトを再開
		this.toolStrip.ResumeLayout(false);
		this.toolStrip.PerformLayout();

		//StatusStripクラスインスタンスの生成
		this.statusStrip = new StatusStrip();
		//ステータスバーにパネルとテキストを追加
		tssl = new ToolStripStatusLabel[3];
		tssl[0] = new ToolStripStatusLabel();
		tssl[0].BorderSides = ToolStripStatusLabelBorderSides.All;
		tssl[0].BorderStyle = Border3DStyle.SunkenInner;
		tssl[0].BackColor = SystemColors.Control;
		tssl[0].Text = "FormMDISkelton Ver. 1.0";
		tssl[0].AutoSize = true;
		tssl[0].TextAlign = ContentAlignment.MiddleLeft;
		tssl[1] = new ToolStripStatusLabel();
		tssl[1].BorderSides = ToolStripStatusLabelBorderSides.All;
		tssl[1].BorderStyle = Border3DStyle.SunkenInner;
		tssl[1].BackColor = SystemColors.Control;
		tssl[1].Text = "（メッセージ１）";
		tssl[1].AutoSize = true;
		tssl[1].TextAlign = ContentAlignment.MiddleLeft;
		tssl[2] = new ToolStripStatusLabel();
		tssl[2].BorderSides = ToolStripStatusLabelBorderSides.All;
		tssl[2].BorderStyle = Border3DStyle.SunkenInner;
		tssl[2].BackColor = SystemColors.Control;
		tssl[2].Text = "（メッセージ２）";
		tssl[2].ToolTipText = "（メッセージ２）";	//ToolTip設定
		tssl[2].Spring = true;
		tssl[2].TextAlign = ContentAlignment.MiddleLeft;
		statusStrip.Items.AddRange(tssl);
		statusStrip.ShowItemToolTips = true;		//ToolTip表示
		this.Controls.Add(this.statusStrip);		//StatusStrip(ステータスバー)を追加
		//メインフォームのレイアウトを再開
		this.ResumeLayout(false);
		this.PerformLayout();
	}


	//親フォームのMdiChildActivateイベントハンドラ
	private void MainWnd_MdiChildActivate(object sender, EventArgs e)
	{
		//アクティブな子フォームのタイトルを親フォームのタイトルに追加する
		if(this.ActiveMdiChild != null)
			this.Text = this.ActiveMdiChild.Text + " - " + Application.ProductName;
		else
			this.Text = Application.ProductName;
	}

	//「新規」処理
	private void OnNew_Click(object sender, EventArgs e)
	{
		//子フォームとするフォームを作成する
		Form form = new Form();
		//サイズ決定
		form.Width = 506;
		form.Height = 277;
		//新規ファイルであることをウィンドウタイトル、ステータスバーとToolTipで表示
		 form.Text = tssl[2].Text = tssl[2].ToolTipText = "新規ファイル";
		//親フォームをこのフォームにする
		form.MdiParent = this;
		//子フォームを表示する
		form.Show();
	}

	//「ファイルを開く」処理
	private void OnOpen_Click(object sender, EventArgs e)
	{
		DialogResult dr = MessageBox.Show("C#ファイルを開きますか？（「はい」）\r\nそれとも総てのファイルですか？（「いいえ」）\r\n或いは中止しますか？（「キャンセル」）", "ファイル種類確認", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
		OpenFileDialog ofDlg = new OpenFileDialog();
		ofDlg.AddExtension = true;	//拡張子自動付加
		switch(dr)
		{
		case DialogResult.Yes:
			ofDlg.FileName = "*.cs";	//拡張子
			ofDlg.FilterIndex = 1;		//ファイルフィルターインデックス
			break;
		case DialogResult.No:
			ofDlg.FileName = "*.*";		//拡張子
			ofDlg.FilterIndex = 2;		//ファイルフィルターインデックス
			break;
		default:
			return;
		}
		//ファイルフィルターの指定
		ofDlg.Filter = "C#ファイル(*.cs)|*.cs|総てのファイル(*.*)|*.*";
		ofDlg.RestoreDirectory = true;	//初期ディレクトリへ復帰
		ofDlg.CheckFileExists = true;	//ファイルの存在チェック
		ofDlg.CheckPathExists = true;	//ファイルパスの存在チェック
		ofDlg.InitialDirectory = ".";	// デフォルトのフォルダーの指定
		ofDlg.Title = "ファイルを開く";	//ダイアログのタイトルを指定する
		if(ofDlg.ShowDialog() == DialogResult.OK)	//ダイアログを表示する
		{
		}
		else
		{
			MessageBox.Show("キャンセルされました。", "キャンセル", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
		}
		// オブジェクトを破棄する
		ofDlg.Dispose();
		//子フォームとするフォームを作成する
		Form form = new Form();
		//サイズ決定
		form.Width = 506;
		form.Height = 277;
		//ウィンドウタイトル、ステータスバーとToolTipにファイル名を表示
		 form.Text = tssl[2].Text = tssl[2].ToolTipText = ofDlg.FileName;
		//親フォームをこのフォームにする
		form.MdiParent = this;
		//子フォームを表示する
		form.Show();
	}

	//「保存」処理
	private void OnSave_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「名前を付けて保存」処理
	private void OnSaveAs_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「終了」処理
	private void OnExit_Click(object sender, EventArgs e)
	{
		Close();	//修了確認はOnClosingメソッドで行う
	}

	//「切り取り」処理
	private void OnCut_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「コピー」処理
	private void OnCopy_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「貼り付け」処理
	private void OnPaste_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「フォント」処理
	private void OnFont_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「検索」処理
	private void OnFind_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「置換」処理
	private void OnReplace_Click(object sender, EventArgs e)
	{
		MessageBox.Show("すみません、工事中です", "工事中", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
	}

	//「重ねて並べる」処理
	private void OnCascade_Click(object sender, EventArgs e)
	{
		//重ねて表示
		this.LayoutMdi(MdiLayout.Cascade);

//次のようにして現在アクティブな子フォームを特定して操作する
Form fm = this.ActiveMdiChild;
string str = String.Format("子フォームの幅 = {0}（クライアントエリア = {1}）、高さ = {2}（クライアントエリア = {3}）", fm.Width, fm.ClientSize.Width, fm.Height, fm.ClientSize.Height);
MessageBox.Show(str, "子ウィンドウサイズ", MessageBoxButtons.OK, MessageBoxIcon.Information);

	}
	//「縦に並べる」処理
	private void OnTileVert_Click(object sender, EventArgs e)
	{
		//上下に並べて表示
		this.LayoutMdi(MdiLayout.TileHorizontal);
	}

	//「横に並べる」処理
	private void OnTileHorz_Click(object sender, EventArgs e)
	{
		//左右に並べて表示
		this.LayoutMdi(MdiLayout.TileVertical);
	}

	//「アイコンの整列」処理
	private void OnArrIcon_Click(object sender, EventArgs e)
	{
		//アイコンの整列
		this.LayoutMdi(MdiLayout.ArrangeIcons);
	}

	//「使い方」処理
	private void OnHowtoUse_Click(object sender, EventArgs e)
	{
		MessageBox.Show("使い方処理です", "メニューアイテム", MessageBoxButtons.OK, MessageBoxIcon.Information);
	}

	//「バージョン」処理
	private void OnVersion_Click(object sender, EventArgs e)
	{
		VersionDlg verDlg = new VersionDlg(this.Icon);
		verDlg.ShowDialog();
	}
}

/////////////////////
//Version ダイアログ
/////////////////////
class VersionDlg : Form
{
	public VersionDlg(Icon ico)
	{
		//ダイアログの属性設定
		this.Text = "バーション情報";
		this.ClientSize = new Size(320, 100);
		this.MaximizeBox = false;		// 最大化ボタン
		this.MinimizeBox = false;		// 最小化ボタン
		this.ShowInTaskbar = false;		//タスクバー上表示
		this.FormBorderStyle = FormBorderStyle.FixedDialog;		// 境界のスタイル
		this.StartPosition = FormStartPosition.CenterParent;	// 親フォームの中央に配置
		//コントロールの属性設定
		Button btnOK = new Button();
		btnOK.Size = new Size(40, 28);
		btnOK.Location = new Point(ClientSize.Width - btnOK.Width - 10, (ClientSize.Height - btnOK.Height) / 2);
		btnOK.Text = "OK";
		btnOK.Click += new EventHandler(OnOK_Click);
		Label imglabel = new Label();
		imglabel.Size = new Size(40, 40);
		imglabel.Location = new Point(10, (ClientSize.Height - imglabel.Height) / 2);
		imglabel.BorderStyle = BorderStyle.Fixed3D;
		imglabel.Image = ico.ToBitmap();	//親のシステムアイコン
		Label label = new Label();
		label.Size = new Size(ClientSize.Width - imglabel.Width - btnOK.Width - 40, ClientSize.Height- 20);
		label.Location = new Point(imglabel.Width + 20, (ClientSize.Height - label.Height) / 2);
		label.BorderStyle = BorderStyle.Fixed3D;
		label.Text = "C# MDI Skelton Version 1.0\r\nCopyright (c) 2023 by Ysama\r\n(written in Microsoft C#)";
		label.TextAlign = ContentAlignment.MiddleCenter;
		label.Font = new Font("Times New Roman", 10, FontStyle.Bold);
		this.Controls.Add(btnOK);
		this.Controls.Add(imglabel);
		this.Controls.Add(label);
	}

	private void OnOK_Click(object sender, EventArgs e)
	{
		Close();
	}
}
