僅用一行簡單程式,即可讓 Windows Forms 所有選單與內容選單擁有 Office 2003 風格外觀。同樣,只用一行程式即可為選單加上漂亮圖標。本文實現具備該功能元件。若想讓選單恢復原貌,只須呼叫 End 方法。

正確使用元件,必須先將元件加入工具箱。然後從工具箱拖放到 Form 視窗。此時設計頁會多出名為 OfficeMenus1 圖標,表示已加入選單元件。緊接著呼叫:
// 開始顯示 Office 2003 選單
OfficeMenus1.Start(FormName); // 註:FormName 為要改變選單風格視窗名稱
同樣,可呼叫以下方法終止 Office 2003 風格,恢復原始外觀:
// 改變選單外觀風格到原始狀態
OfficeMenus1.End();
為選單項新增圖標也簡單,只須為專案新增 ImageList (圖像清單控制項),將 OfficeMenu 元件 ImageList 屬性改為您新增的 ImageList,使用代碼:
// 為選單新增圖像
// OfficeMenus.AddPicture(MenuItem MenuItemToAddPictureTo, int ImageIndex);
OfficeMenus1.ImageList = imageList1;
OfficeMenus1.AddPicture(menuItem2, 1);
可見,只須幾行代碼即可輕鬆實現 Office 2003 風格選單。
元件由三個類別實現:OfficeMenus、MainMenuItemDrawing、MenuItemDrawing,均位於命名空間 Dev4Arabs。因實作代碼較長,此處僅給出實作思路。
第一步:從 System.ComponentModel.Component 衍生 OfficeMenus 類別:
public class OfficeMenus : System.ComponentModel.Component
類別中定義兩靜態變數:
// 圖像清單儲存選單用到圖標
static ImageList _imageList;
// 儲存圖片細節 NameValueCollection,使每個選單控制代碼與圖標形成一一對應關係,便於繪製時快速找到對應圖標
static NameValueCollection picDetails = new NameValueCollection();
接著定義公用介面方法 Start 與 End。