4.3 添加彈出式菜單
在.Net中,System.Windows.Forms.Control類是除菜單外的所有窗體控件及可視化元素的基類,在該類中有一個ContextMenu類型的屬性ContextMenu,通過設置該屬性可以為控件或窗體添加彈出式菜單。方法非常簡單,你只需要創建一個ContextMenu對象,並把該對象賦給窗體或控件的ContextMenu屬性即可。
前面我們介紹了ContextMenu類有兩個構造函數,使用兩個構造函數,與MainMenu類似,我們可以通過下面兩種方法為控件或窗體添加彈出式菜單。
第一種方法,使用ContextMenu()產生一個不含任何菜單項的ContextMenu(彈出菜單)對象,然後通過該對象的MenuItems屬性管理菜單項,如下面的語句為窗體及按鈕添加同樣的彈出菜單:
ContextMenu Menu1=new ContextMenu();
Menu1.MenuItems.Add(new MenuItem(“彈出菜單一"));
Menu1.MenuItems.Add(new MenuItem(“彈出菜單二"));
this.ContextMenu=Menu1;
button1.ContextMenu=Menu1;
第二種方法是使用ContextMenu(MenuItem[] menus)構造函數直接生成具有一系列菜單項的彈出式菜單。如下面的例子:
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,menu5});//為當前窗體添加彈出式菜單
在使用過程中,你還可以通過ContextMenu對象的RightToLeft設置菜單的排列方式,通過SourceControl查看所顯示彈出菜單所對應的控件等,還可以通過直接使用對象的Show()方法強制顯示彈出菜單等。
以主菜單(MainMenu)對象相似,要訪問一個彈出菜單的具體菜項,你可以直接通過Menu.MenuItemCollection集合進行。如下面的語句:
Menu1.MenuItems[0].Text="Test";
或
this.ContextMenu.MenuItems[0].Text="Test";