C#のWinFormsで右クリックでコンテキストメニューを表示する。

C# コンピュータ
C#

UserControl上で右クリックでコンテキストメニューを表示するサンプルになります。

サンプルプログラムソース

namespace ContextMenuSample;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        var uc = new UserControl{ Dock = DockStyle.Fill, };

        var contextMenu = new ContextMenuStrip();
        var menuItem1 = new ToolStripMenuItem { Text = "アイテム1", };
        menuItem1.Click += (s, e) => MessageBox.Show("アイテム1", "Menu");
        var menuItem2 = new ToolStripMenuItem { Text = "アイテム2", };
        menuItem2.Click += (s, e) => MessageBox.Show("アイテム2", "Menu");
        contextMenu.Items.AddRange(new ToolStripMenuItem[]{menuItem1, menuItem2});

        uc.ContextMenuStrip = contextMenu;

        Controls.Add(uc);
    }
}

実行

右クリックでメニューが表示

項目(アイテム1)をクリックするとメッセージボックスが表示される。

気づいたこと

UserControlのContextMenuStripプロパティにコンテキストメニューのオブジェクトをセットすることで右クリックでメニューが表示されました。基本的にUserControlは継承して使うことになりますので、継承して作成した自作のコントロールにコンテキストメニュー機能を比較的簡単に追加することが出来そうです。

コメント