//================================================================================================= // C#のメニュー // メニューの項目を選択するとその名称が下のラベルの文字が変化するプログラム。 // 順序的には // @メインメニューを生成(MenuStrip) // Aメニュー項目を生成(ToolStripMenuItem) // Bドロップダウンするメニューアイテムを親メニューアイテムに追加 // Cドロップダウンしない最上位のメニュー項目をメインメニューに追加する // DメインメニューをWindowに追加する // // 途中で「new ToolStripSeparator()」とあるが、これは仕切り。 // これをコメントアウトするとメイン2の中の項目サブ1とサブ2の間の仕切りがなくなる。 // // 参考文献:やさしいC#(p192) // 2012/11/14/オワタ //================================================================================================= using System; using System.Windows.Forms; using System.Drawing; class MyMenu : Form { private Label mLabel; private MenuStrip mMenuStrip; private ToolStripMenuItem[] mMenuItem = new ToolStripMenuItem[10]; public static void Main() { Application.Run(new MyMenu()); } public MyMenu() { //< Windowの生成 this.Text = "メニュー"; this.Width = 200; this.Height = 200; //< ラベルの生成 mLabel = new Label(); mLabel.Text = "いらっしゃいませ"; mLabel.Dock = DockStyle.Bottom; //< メインメニューの生成 mMenuStrip = new MenuStrip(); //< メニュー項目の生成 mMenuItem[0] = new ToolStripMenuItem("メイン1"); mMenuItem[1] = new ToolStripMenuItem("メイン2"); mMenuItem[2] = new ToolStripMenuItem("サブ1"); mMenuItem[3] = new ToolStripMenuItem("サブ2"); mMenuItem[4] = new ToolStripMenuItem("絢辻さん"); mMenuItem[5] = new ToolStripMenuItem("森島先輩"); mMenuItem[6] = new ToolStripMenuItem("ふかふか"); mMenuItem[7] = new ToolStripMenuItem("肉"); mMenuItem[8] = new ToolStripMenuItem("もじゃ子"); mMenuItem[9] = new ToolStripMenuItem("七咲"); //< ドロップダウン項目の設定 mMenuItem[0].DropDownItems.Add(mMenuItem[4]); mMenuItem[0].DropDownItems.Add(mMenuItem[5]); mMenuItem[1].DropDownItems.Add(mMenuItem[2]); mMenuItem[1].DropDownItems.Add(new ToolStripSeparator()); //< セパレータ(メニューの間に入れる区切り) mMenuItem[1].DropDownItems.Add(mMenuItem[3]); mMenuItem[2].DropDownItems.Add(mMenuItem[6]); mMenuItem[2].DropDownItems.Add(mMenuItem[7]); mMenuItem[3].DropDownItems.Add(mMenuItem[8]); mMenuItem[3].DropDownItems.Add(mMenuItem[9]); //< 最上位のメニュー設定 mMenuStrip.Items.Add(mMenuItem[0]); mMenuStrip.Items.Add(mMenuItem[1]); //< Windowにメニュー設定 this.MainMenuStrip = mMenuStrip; mMenuStrip.Parent = this; mLabel.Parent = this; //< メニューの項目がクリックされた時に処理する関数設定 for (int i = 4; i < mMenuItem.Length; i++) { mMenuItem[i].Click += new EventHandler(menuItemClick); } } //< メニューの項目がクリックされた時に処理する関数 public void menuItemClick(Object obj, EventArgs e) { ToolStripMenuItem tmp = (ToolStripMenuItem)obj; mLabel.Text = tmp.Text + "ですね。"; } };