C# menuStripのイベント処理

igoten

2010年01月26日 23:01

C#やVB.NETではmenuStripによって簡単にプルダウンメニューが 作製できる。


しかしこのクリックの処理をデザイナーのイベントハンドラを 使って処理しようとすると、メニュー毎にイベントハンドらーが出来て 非常に見にくいコードとなる。
そこでメニューのイベントハンドラを一つにして、コードを 簡素化する方法を書く。


下のようなイベントハンドラーを作成してイベントハンドラの設定画面ですべての メニューで同じイベントハンドラーを指定する。



次に各メニューのプロパティ画面でTagに順番に番号を付ける。
イベントハンドラーのコードはボタンクリックのイベントハンドラなどをコピーして 名前を変えると楽にできる。


        private void menu_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem ms = (ToolStripMenuItem)sender;
           int  t = int.Parse(ms.Tag.ToString());
            switch (t)
            { 
                case 1:
                    /*何か処理*/
                    break;
                case 2 :
                    /*何か処理*/
                    break;
                case 3:
                    /*何か処理*/
                    break;
                case 4:
                    /*何か処理*/
                    break;
            }
        }