メニューの仕組みを知る
様々なコントロールを学んできました。次に補助的な役割も持つコントロールについて学びましょう。ウインドウにはメニューをつけることができます。早速試してみましょう
using System;
using System.Windows.Forms;
using System.Drawing;
namespace lesson7
{
class sample10 : Form
{
private Label lb;
private MenuStrip ms;
private ToolStripMenuItem[] mi = new ToolStripMenuItem[10];
static void Main(string[] args)
{
Application.Run(new sample10());
}
public sample10()
{
this.Text = "lesson7";
this.Width = 300; this.Height = 200;
lb= new Label();
lb.Text = "いらっしゃいませ";
lb.Dock = DockStyle.Bottom;
ms = new MenuStrip();//メインメニューを作成します
mi[0] = new ToolStripMenuItem("メイン1");//メニュー項目を作成します
mi[1] = new ToolStripMenuItem("メイン2");
mi[2] = new ToolStripMenuItem("サブ1");
mi[3] = new ToolStripMenuItem("サブ2");
mi[4] = new ToolStripMenuItem("乗用車");
mi[5] = new ToolStripMenuItem("トラック");
mi[6] = new ToolStripMenuItem("オープンカー");
mi[7] = new ToolStripMenuItem("タクシー");
mi[8] = new ToolStripMenuItem("スポーツカー");
mi[9] = new ToolStripMenuItem("ミニカー");
mi[0].DropDownItems.Add(mi[4]);//ドロップダウン項目を設定します
mi[0].DropDownItems.Add(mi[5]);
mi[1].DropDownItems.Add(mi[2]);
mi[1].DropDownItems.Add(new ToolStripSeparator());//セパレータです
mi[1].DropDownItems.Add(mi[3]);
mi[2].DropDownItems.Add(mi[6]);
mi[2].DropDownItems.Add(mi[7]);
mi[3].DropDownItems.Add(mi[8]);
mi[3].DropDownItems.Add(mi[9]);
ms.Items.Add(mi[0]);//最上位のメニューを設定します
ms.Items.Add(mi[1]);
this.MainMenuStrip = ms;//フォームのメニューを設定します
ms.Parent = this;//メニューを表示されます
lb.Parent = this;
for (int i = 4; i < mi.Length; i++)
{
mi[i].Click += new EventHandler(mi_Click);
}
}
public void mi_Click(Object sender, EventArgs e)
{
ToolStripMenuItem mi = (ToolStripMenuItem)sender;
lb.Text = mi.Text + "ですね";
}
}
}
このサンプルでは、メニュー選択したときにラベルの表示が変更されるようにしました。メニューは、次のような順序で作成しています。
- メインメニュー(MenuStrip)を作成する
- メニューアイテム(ToolMenuStripItem)を作成する
- ドロップダウンするメニューアイテムを親メニューアイテムに追加する
- ドロップダウンしない最上位のメニューアイテムをメインメニューに追加する
- メインメニューをフォームに追加する
メニューアイテム(ToolMenuStripItem)がメニューの各項目に対応しています。コードを実際のプログラムを比べてみることよいでしょう。
なお、セパレータは、メニューの間に入れる仕切りです。ToolStripSeparator()コンストラクタを使うことができます。
クラス | 説明 |
---|---|
System.Windows.Forms.MenuStripクラス | |
MenuStrip()コンストラクタ | メインメニューを作成する |
System.Windows.Forms.ToolMenuStripItemクラス | |
ToolMenuStripItem()コンストラクタ | メニューを作成する |
DropDownItemsプロパティ | ドロップダウン項目を設定します |
System.Windows.Forms.ToolStripSeparatorクラス | |
ToolStripSeparator()コンストラクタ | セパレータを作成する |
System.Windows.Forms.Formクラス | |
MainMenuStripプロパティ | メインメニューを設定する |
コメント