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は継承して使うことになりますので、継承して作成した自作のコントロールにコンテキストメニュー機能を比較的簡単に追加することが出来そうです。
コメント