2.2 System.Windows.Forms.Menu類
該類是一個抽象類,其是各種類型菜單的基類,封裝了一個Windows Forms菜單的大部份公共屬性。
在菜單應用程序設計中,我們不直接(也不能)使用該類,而是使用其派生類MainMenu、MenuItem、ContextMenu等進行菜單開發;但可以從該類派生出自己更具個性化的菜單。
在該類中有定義了一個非常重要的屬性:MenuItems,其表示該對象所包含的菜單項集合。
2.3 System.Windows.Forms.MenuItem類
該類封裝了一個菜單項中的各種成員,所有的菜單項都是由MenuItem對象構成的。該類包含了對一個菜單項的詳細定義,如菜單項目的各種屬性、響應事件及方法等。MenuItem對象是各種菜單的基本元素,在後面我們將詳細講解菜單項的使用。
2.4 System.Windows.Forms.MainMenu類
作為一個窗體主菜單的容器,其實例產生一個窗體的主菜單對象。你可以直接通過該類的構造函數生成MainMenu對象。其構造函數有兩種形式:
MainMenu():不帶任何參數,將生成一個不帶菜單項的主菜單對象。
MainMenu(MenuItem[] menus):帶一個菜單項數據參數,將生成一個主菜單對象,並包括參數中擁有的菜單,作為菜單項。
MainMenu的Menu類的基礎上,添加了一個屬性:RightToLeft,把屬性設為RightToLeft.Yes可以使你的主菜單從窗體的右邊排到左邊(這種表示是一些國家的語言習慣)。
MainMenu對象提供一個方法CloneMenu(),使得用戶可以方便的復制主菜單對象。除此之外,還可以通過GetForm()方法查看當前主菜單所在的窗體。
2.5 System.Windows.Forms.ContextMenu類
該類封裝了對彈出式菜單各種特性及功能的定義。使用該類,當你在一個控件上點擊右鍵,或者是在窗體的任何一個區域點擊右鍵,將可以彈出一個快捷菜單。
生成一個彈出式菜單對象,可以使用該類有兩個構造函數。其中ContextMenu()生成一個不含任何菜單項的彈出式菜單;ContextMenu(MenuItem[] menus)生成一個包括參數中所指定的菜單項的彈出式菜單。
ContextMenu類在Menu的基礎上增加了兩個屬性,其中一個是RightToLeft可以使菜單項從右到左對齊,另一個SourceControl屬性返回一個Control值表示當前所顯示彈出菜單對應的控件。
在ContextMenu類中,通過Show()方法可以使程序主動顯示彈出菜單。當彈出菜單彈出時將引發一個Popup事件,你可以在定義該事件的響應方法使彈出菜單顯示前做一些操作;你也可以通過虛擬的OnPopup()方法引發彈出菜單的Popup事件。
2.6 System.Windows.Forms.Menu.MenuItemCollection類
表示系列菜單項(MenuItem)對象的集合,並提供管理集合中元素的各種方法。該類從Object中繼承,並通過Ilist、Icollection等接口繼承了.Net中關於集合的各種操作,其在.Net類庫中說明如下:
public class Menu.MenuItemCollection : IList,ICollection,IEnumerable
通過使用菜單項集合類,你可以使用集合的各種操作方法,從而非常方便的管理一系列的菜單項,如一個主菜單上的所有菜單項及一個主菜單下的所有子菜單等。
同.Net中的所有集合對象一樣,該類Count屬性返回集合中的菜單項;還可以通過索引(Index)訪問集合中的菜單項;你可以通過集合的Add()、AddRange()向集合中加入菜單項對象,也可以通過Remove()及RemoveAt()等方法刪除集合中的元素等等。