C# 右クリックメニューを表示する(ContextMenuStrip)

   

現在のWindowsでは、もう定番ともいえる「右クリックメニュー」ですが、C#でもこの機能を扱うことができます。
題名に「右クリックメニュー」と書いていますが、正式名称は「コンテキストメニュー」です。
.NET Framework(C#)でもコントロール名はContextMenuStrip(System.Windows.Forms名前空間)です。

 

「作りたいのは”メニュー”じゃない」

Windowsアプリケーションには、よく「メニュー」を搭載したアプリケーションがあります。
なぜ、ここでこのようなことを書いているかというと、フォームデザイナにコンテキストメニューを置いたときに、メニューととても良く似た表示になるからです。

まず、Visual StudioでWindowsフォームアプリケーションを用意します。

ここに、[ツールボックス]の「メニューとツールバー」からフォームにContextMenuStripをD&D(ドラッグアンドドロップ)でフォームに置きます。

 

置き終わると、デザイナは下記のような表示になります。

「あれ?間違えた?」「置いたのはメニューじゃないのに・・・」と思われるかもしれません、ご安心下さい。これで、ちゃんと「コンテキストメニュー」をフォームに配置できています。

 

メニューをフォームに配置したときのデザイナ画面は、このようになっています(ちょっと無愛想ですね)。

 

さらに、メニューを載せたフォームにコンテキストメニューを置くと下図のようになります。

(見づらいかもしれませんが、通常のメニューと2段になっています)

 

使ってみる

サンプルコードは、下記のようになります。

 

コンテキストメニューを使えるようにするには大事なことが3つあります。

  1. コンテキストメニューの項目を作る
  2. コンテキストメニュー項目をクリックしたときの処理を実装する
  3. コンテキストメニューをフォームに登録する

 

「1. コンテキストメニューの項目を作る」と「2. コンテキストメニュー項目をクリックしたときの処理を実装する」は、コンテキストメニューを作るので、そこに入れる項目は作ると思います。
意外に忘れてしまうのが、「3. コンテキストメニューをフォームに登録する」です。
コードであれば1行、デザイナであればプロパティでできますので、忘れないようにしましょう。

 - 未分類