C#Windows應用程序開發之添加菜單
C#Windows應用程序開發之添加菜單的前言:通常windows應用程序都有相似的特征:控件、菜單、工具條、狀態欄等等。每次我們開始作一個新的windows應用程序時都是以相同的事情開始:建立項目,添加控件和事件處理器。如果我們有一個模板,那么我們就可以節約大量的時間了。
在介紹如何建立模板的過程中,將涉及大量的微軟.net framework類庫的基本知識。如果你沒有使用集成開發環境那么本文介紹的模板對你將非常有用,如果你使用了visual studio.net這樣的集成開發環境你也可以從中了解控件的工作方式,這對你也是很有用的。
C#Windows應用程序開發之添加菜單和菜單項
要找到沒有菜單的windows應用程序非常困難,菜單使訪問應用程序的功能變得很簡單,在大多數環境下可以最小的使用控件。菜單比控件占用更少的空間,同時使應用程序顯得更有組織。
在System.Windows.Forms名稱空間中,所有與菜單相關的控件都是menu類的子類。menu是一個抽象類,你不能直接實例化,menu類有三個子類:
- ContextMenu
- MainMenu
- MenuItem
C#Windows應用程序開發之添加菜單之ContextMenu類表示快捷菜單,在控件或窗體區域點擊鼠標右鍵時顯示。快捷菜單常用于組合窗體mainmenu類的菜單項給出應用程序的上下文,這對于用戶時非常有用的。
MainMenu表示傳統的位于窗體頂部的菜單,你可以把它看成窗體菜單結構的容器。一個菜單是由MenuItem表示的菜單項組成的,對于應用程序而言每一個菜單項是一個命令或其它子菜單項的父菜單。form類都有一個menu屬性,采用將mainmenu對象賦給menu屬性的方式將mainmenu對象綁定到窗體。
C#Windows應用程序開發之添加菜單在這個模板中,我們沒有使用ContextMenu類,但我們示范了如何使用MainMenu和MenuItem類。我們首先需要在窗體中添加一個菜單,給窗體添加一個MainMenu對象。
MainMenu mainMenu = new MainMenu();
C#Windows應用程序開發之添加菜單和菜單項現在MainMenu對象中什么都沒有,下面我們給他添加一個MenuItem對象。在List1中主菜單稱為fileMenuItem,它的text屬性是&File,&表示他后面的字母帶下劃線,是該菜單的快捷鍵。通過使用Menu對象的MenuItemCollection的add方法為MainMenu添加一個或幾個MenuItem,這個集合可以通過menu類的MenuItems屬性訪問。
- MenuItem fileMenuItem = new MenuItem();
- mainMenu.MenuItems.Add(fileMenuItem);
C#Windows應用程序開發之添加菜單和菜單項我們在fileMenuItem 菜單項中還添加了其它MenuItem,這些MenuItem是fileMenuItem的子菜單。你也可以給子菜單添加子菜單。圖2顯示了菜單的等級結構。
C#Windows應用程序開發之添加菜單項的聲明如下:
- MenuItem fileNewMenuItem;
- MenuItem fileOpenMenuItem;
- MenuItem fileSaveMenuItem;
- MenuItem fileSaveAsMenuItem;
- MenuItem fileMenuWithSubmenu;
- MenuItem submenuMenuItem;
- MenuItem fileExitMenuItem;
C#Windows應用程序開發之添加菜單和菜單項之MenuItem類有幾個構造函數,使用這些構造函數實例化你的 MenuItem對象,并添加一個事件處理器。
- // the following constructor is the same as:
- // menuItem fileNewMenuItem = new MenuItem();
- // fileNewMenuItem.Text = "&New";
- // fileNewMenuItem.Shortcut = Shortcut.CtrlN;
- // fileNewMenuItem.Click += new
- // System.EventHandler(this.fileNewMenuItem_Click);
- fileNewMenuItem = new MenuItem("&New",
- new System.EventHandler(this.fileNewMenuItem_Click), Shortcut.CtrlN);
- fileOpenMenuItem = new MenuItem("&Open",
- new System.EventHandler(this.fileOpenMenuItem_Click), Shortcut.CtrlO);
- fileSaveMenuItem = new MenuItem("&Save",
- new System.EventHandler(this.fileSaveMenuItem_Click), Shortcut.CtrlS);
- fileSaveAsMenuItem = new MenuItem("Save &As",
- new System.EventHandler(this.fileSaveAsMenuItem_Click));
- fileMenuWithSubmenu = new MenuItem("&With Submenu");
- submenuMenuItem = new MenuItem("Su&bmenu",
- new System.EventHandler(this.submenuMenuItem_Click));
- fileExitMenuItem = new MenuItem("E&xit",
- new System.EventHandler(this.fileExitMenuItem_Click));
- Event handling is discussed further in the section "Adding Event Handlers."
- As mentioned, the menu items are added to the fileMenuItem control.
- fileMenuItem.MenuItems.Add(fileNewMenuItem);
- fileMenuItem.MenuItems.Add(fileOpenMenuItem);
- fileMenuItem.MenuItems.Add(fileSaveMenuItem);
- fileMenuItem.MenuItems.Add(fileSaveAsMenuItem);
- fileMenuItem.MenuItems.Add(fileMenuWithSubmenu);
- fileMenuWithSubmenu.MenuItems.Add(submenuMenuItem);
- fileMenuItem.MenuItems.Add("-"); // add a separator
- fileMenuItem.MenuItems.Add(fileExitMenuItem);
注意在菜單項之間可以創建一個分隔符,方法是使用menu類的MenuItems集合的add方法。上面的例子中使用的分隔符是"-"。
C#Windows應用程序開發之添加菜單和菜單項的基本情況就向你介紹到這里,希望對你學習和了解C#Windows應用程序開發之添加菜單和菜單項有所幫助。
【編輯推薦】