マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部
エバンジェリスト 高橋 忍

最終更新日 2006 年 3 月 3 日

このコンテンツのポイント

  • コンテキストメニューストリップの実装方法を理解する。

今回紹介するコード

<Form1.cs>

C#
Public Form1()
{
        InitializeComponent();
        //ContextMenu
        ContextMenuStrip cntmenu = new ContextMenuStrip();
        ToolStripMenuItem newcontitem = new ToolStripMenuItem();
        newcontitem.Text = "&New";
        newcontitem.Click += delegate
        {
                Form frm = new Form();
                frm.Show();
        };
        cntmenu.Items.Add(newcontitem);
        this.ContextMenuStrip = cntmenu;
}
 

  今回のシステム要件

  • Visual Studio 2005

目次

はじめに
作成するアプリケーションの概要
アプリケーションの作成
動作と解説
おわりに

Visual Basic の内容はこちらに掲載しています。
10 行でズバリ!! ContextMenuStrip の利用 (VB)

 

はじめに

Windows Forms 2.0 で新しく追加された、ToolStrip はこれまでの Menu に変わる新しいコントロールです。ToolStrip ではさまざまなアイテムを簡単にメニューに追加し利用することが出来ます。ここでは、ToolStrip の中から ContextMenuStrip を利用する方法を取り上げます。

 

作成するアプリケーションの概要

ここでは、コンテキストメニューから新しいウィンドウを生成する機能を実装します。

 

アプリケーションの作成

まず、新規に Windows アプリケーションを作成します。Visual Studio 2005 の [ファイル] メニューをクリックし、[新規作成] をポイントして、[プロジェクト] をクリックします。 [新しいプロジェクト] ダイアログ ボックスが表示されたら、プロジェクトの種類として 「Visual C#」 の 「Windows」 を選択し、テンプレートとして 「Windows アプリケーション」 を選択します。 プロジェクト名などを任意に指定して [OK] をクリックします。

図 1. Windows アプリケーションを新規に作成する

これで、ベースとなる Windows フォームが出来ましたのでここで、続けて機能を実装します。「表示」 メニューから 「コード」 を選択してコード画面を表示します。すでに Form1 のコンストラクタである、Form1() のメソッドが定義されていますので、ここに以下のコードを追加します。

C#
Public Form1()
{
       InitializeComponent();
       //ContextMenu
       ContextMenuStrip cntmenu = newContextMenuStrip();
       ToolStripMenuItem newcontitem = newToolStripMenuItem();
       newcontitem.Text = "&New";
       newcontitem.Click += delegate
       {
              Form frm = newForm();
              frm.Show();
       };
       cntmenu.Items.Add(newcontitem);
       this.ContextMenuStrip = cntmenu;
}
 

動作と解説

では、実行してみます。 [Ctrl + F5] キーを押すか、[デバッグ] メニューの [デバッグなしで開始] をクリックします。ウィンドウが表示されるのでマウスを右クリックして、コンテキストメニューを表示します。コンテキストメニューの 「New」 を選択すると新しいウィンドウが起動することが確認できます。

図 2. コンテキストメニューから新しいウィンドウの起動

ContextMenuStrip は ToolStrip の 1 種です。そのため ContextMenuStrip にも MenuStrip と同じように ToolStripMenuItem を登録することが出来、また同じように利用することが出来ます。つまり、ToolStripMenuItem は様々な ToolStrip オブジェクト上で共有したり、使い分けたりすることが出来ます。

Form には ContextMenu プロパティが備わっているため、ContextMenuStrip との紐付けは容易です。

 

おわりに

ConetxtMenuStrip も MenuStrip と同じように扱うことが出来、アイテネ の共有が可能です。Menu バーとコンテキストメニューでメニューを共有することはよくある実装パターンです。こういった ToolStrip の機能をうまく使って使いやすいアプリケーションに挑戦してみてくき さい。

 


 

Code Recipe .NET Framework デベロッパー センター

ページのトップへ