在 .NET 中,System.Windows.Forms.Control 類別是除選單外所有視窗控制項與視覺化元素的基類。該類別包含一個 ContextMenu 型別的 ContextMenu 屬性,透過設定此屬性即可為控制項或表單新增右鍵彈出式選單。操作非常直觀:只需建立一個 ContextMenu 物件,並指派給表單或控制項的 ContextMenu 屬性即可。
ContextMenu 類別提供兩個建構函式,使用方式與 MainMenu 類似,可透過下列兩種方法為控制項或表單新增彈出式選單。
ContextMenu menu1 = new ContextMenu();
menu1.MenuItems.Add(new MenuItem("彈出選單一"));
menu1.MenuItems.Add(new MenuItem("彈出選單二"));
// 為表單與按鈕指派相同的彈出選單
this.ContextMenu = menu1;
button1.ContextMenu = menu1;
MenuItem menu1 = new MenuItem("彈出選單一");
MenuItem menu2 = new MenuItem("彈出選單二");
MenuItem menu3 = new MenuItem("-"); // 選單分隔線
MenuItem menu4 = new MenuItem("彈出選單三");
// 為目前表單新增彈出式選單
this.ContextMenu = new ContextMenu(new MenuItem[] { menu1, menu2, menu3, menu4 });
與主選單類似,可直接透過 Menu.MenuItemCollection 集合存取彈出選單項目:
// 兩種存取方式效果相同
menu1.MenuItems[0].Text = "Test";
// 或
this.ContextMenu.MenuItems[0].Text = "Test";
因為物件為參考型別,兩種方式實質操作的是同一個選單物件。