この章では、メインメニューに「ファイル(&F)」というメニュー項目を持ち、これをクリックすると「保存(&S)」「終了(&X)」というメニュー項目を持つサブメニューを作ってみます。
まずは、「保存」と「終了」のメニュー項目を作ります。このメニュー項目はクリックされると何らかの実行が起ります。
MenuItem miExit = new MenuItem("終了(&X)", new EventHandler(miExitClick)); MenuItem miSave = new MenuItem("保存(&S)", new EventHandler(miSaveClick));次に、「ファイル」メニュー項目を作ります。これは、クリックされるとサブメニューが出てきますので、作り方がちょっと違います。次のバージョンのコンストラクタを使います。
public MenuItem ( string text, MenuItem[] items )textは、メニュー項目のキャプションで、itemsは、このメニュー項目のサブメニューの項目が格納されているMenuItemオブジェクトの配列です。
では、サブメニュー項目に「保存」「終了」を持つ「ファイル」メニュー項目を作ってみましょう。
MenuItem miFile = new MenuItem("ファイル(&F)", new MenuItem[] { miSave, miExit });そして、最後に「ファイル」メニュー項目をメインメニューに設定します。
Menu = new MainMenu(new MenuItem[] { miFile });順番に見ていくと、特に難しい所は無いですね。
さて、フォームを閉じてプログラムを終了するには、FormクラスのCloseメソッドを使います。
public void Close ()では、サンプルのプログラムを見てみましょう。
// menu02.cs using System; using System.Drawing; using System.Windows.Forms; class menu02 { public static void Main() { Application.Run(new MyForm()); } } class MyForm : Form { public MyForm() { Text = "猫でもわかるプログラミング"; BackColor = SystemColors.Window; MenuItem miExit = new MenuItem("終了(&X)", new EventHandler(miExitClick)); MenuItem miSave = new MenuItem("保存(&S)", new EventHandler(miSaveClick)); MenuItem miFile = new MenuItem("ファイル(&F)", new MenuItem[] { miSave, miExit }); Menu = new MainMenu(new MenuItem[] { miFile }); } void miSaveClick(object sender, EventArgs e) { MessageBox.Show("「保存」が選択されました", Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } void miExitClick(object sender, EventArgs e) { Close(); } }実行結果は、次のようになります。
Update 03/Nov/2006 By Y.Kumei