【やさしいC#】lesson7.5 メニュー

C#

メニューの仕組みを知る

  様々なコントロールを学んできました。次に補助的な役割も持つコントロールについて学びましょう。ウインドウにはメニューをつけることができます。早速試してみましょう

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 + "ですね";
        }
    }
}
実行画面

  このサンプルでは、メニュー選択したときにラベルの表示が変更されるようにしました。メニューは、次のような順序で作成しています。

  1. メインメニュー(MenuStrip)を作成する
  2. メニューアイテム(ToolMenuStripItem)を作成する
  3. ドロップダウンするメニューアイテムを親メニューアイテムに追加する
  4. ドロップダウンしない最上位のメニューアイテムをメインメニューに追加する
  5. メインメニューをフォームに追加する

  メニューアイテム(ToolMenuStripItem)がメニューの各項目に対応しています。コードを実際のプログラムを比べてみることよいでしょう。
  なお、セパレータは、メニューの間に入れる仕切りです。ToolStripSeparator()コンストラクタを使うことができます。

クラス説明
System.Windows.Forms.MenuStripクラス
MenuStrip()コンストラクタメインメニューを作成する
System.Windows.Forms.ToolMenuStripItemクラス
ToolMenuStripItem()コンストラクタメニューを作成する
DropDownItemsプロパティドロップダウン項目を設定します
System.Windows.Forms.ToolStripSeparatorクラス
ToolStripSeparator()コンストラクタセパレータを作成する
System.Windows.Forms.Formクラス
MainMenuStripプロパティメインメニューを設定する

コメント

タイトルとURLをコピーしました