版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第 8 章Windows應用程序開發(fā)進階——高級窗體控件,菜單控件、工具欄控件和狀態(tài)欄控件 列表視圖控件和樹視圖控件的使用 字體、顏色對話框、文件對話框 多文檔界面編程,第 8 章Windows應用程序開發(fā)進階——高級窗體控件,菜單控件、工具欄控件和狀態(tài)欄控件 列表視圖控件和樹視圖控件的使用 字體、顏色對話框、文件對話框 多文檔界面編程,8.1 菜單、工具欄控件和狀態(tài)欄控件,菜單、工具欄和狀態(tài)欄是構成Windows應用
2、程序的基本元素。Visual Studio 2008的工具箱中引入了一系列后綴為strip的控件,即MenuStrip(菜單)、ToolStrip(工具欄)和StatusStrip(狀態(tài)欄),其中MenuStrip類似于普通軟件的標準菜單,如word應用程序的文件編輯等菜單。ToolStrip是工具欄控件,可以產(chǎn)生帶圖像的小按鈕,類似于word的工具欄,通常提供菜單項的簡便操作。StatusStrip是狀態(tài)欄控件,一般位于界面的下方,用
3、于提示用戶信息,類似于Windows操作系統(tǒng)中的狀態(tài)欄。本節(jié)將詳細介紹它們的用法。,8.1.1 菜單控件的使用,MenuStrip控件是程序的主菜單。通常用來顯示程序的各項功能,以方便用戶選擇執(zhí)行。通過菜單,用戶可以快速地進入需要的界面,因此,在開發(fā)Windows應用程序時,菜單仍然是組織大量選項最常用的方法。,使用MenuStrip控件設計下拉式菜單的步驟如下。,⑴ 在Windows窗體中添加一個MenuStrip控件。⑵ 單擊該
4、控件的Items屬性中的按鈕,彈出“項集合編輯器”對話框。⑶ “項集合編輯器”對話框中可以添加MenuItem子項。如果要為已經(jīng)添加的子項添加子菜單,可以選擇MenuItem子項,單擊其DropDownItems屬性后面的按鈕,彈出“項集合編輯器”對話框(子項)。⑷ 在“項集合編輯器”(子項)對話框中可以給指定子項添加子菜單,一次類推,即可王城下拉式菜單的設計。⑸ 為了更方便的使用菜單,可通過給菜單項設置快捷鍵來實現(xiàn)。設置快捷鍵的
5、方式為:選中菜單項,在“屬性”窗口中通過設置ShortcutKeys屬性為菜單添加快捷鍵。,除了在設計視圖中創(chuàng)建和修改菜單、上下文菜單和菜單項的屬性,還可以在運行時給菜單或上下文菜單添加菜單項。下面示例代碼演示在程序中使用代碼動態(tài)創(chuàng)建菜單的方法。01 private void CreateMenu()//自定義方法用來動態(tài)創(chuàng)建菜單02 {03 MenuStrip mnu=new MenuStrip();
6、//創(chuàng)建MenuStrip對象04 ToolStripMenuItem medit=new ToolStripMenuItem ("編輯");//創(chuàng)建菜單對象05 mnu.Items.Add (medit);//為菜單欄添加主菜單項06 ToolStripMenuItem submcopy=new ToolStripMenuItem ("復制");//創(chuàng)建
7、菜單對象07 //為主菜單添加子菜單項08 medit.DropDownItems.Add(submcopy);09 this.Controls.Add(mnu);//添加菜單到窗體10 },,無論是在設計視圖完成菜單設計,還是程序運行時動態(tài)添加菜單,都需要給菜單添加相應的功能,設計的菜單才有意義。通常菜單的功能都是通過選擇菜單實現(xiàn)的,在菜單項的Click事件中添加處理程序。雙擊菜單項即可
8、定位到該菜單的Click事件代碼塊中,然后在其中編寫具體實現(xiàn)代碼。如果用戶需要編寫帶歷史信息的菜單,即實現(xiàn)保存最近打開文件,可以將在菜單中最近打開文件的文件名和路徑保存到事先建立的*.ini文件中,系統(tǒng)啟動時讀取其中數(shù)據(jù)建立數(shù)組菜單,即可實現(xiàn)顯示歷史菜單的功能。,8.1.2 快捷菜單,ContextMenuStrip控件是一個快捷菜單,其位置是由鼠標所在的位置決定的。彈出式菜單的結構與下拉式菜單基本相同,區(qū)別是該菜單不是固定在窗體上
9、面,而是通過單擊鼠標右鍵來顯示的。彈出式菜單的設計過程和下拉式菜單的設計過程基本類似,大家可參閱上節(jié)內(nèi)容學習下拉式菜單的設計。下表列出了ContextMenuStrip類的常用成員及其說明。],下面代碼演示了動態(tài)添加快捷菜單的方法。,01 private void CreateContextMenu()//自定義方法用來動態(tài)創(chuàng)建快捷菜單02 {03 //創(chuàng)建快捷菜單對象04 ContextMen
10、uStrip cmnu = new ContextMenuStrip();05 //設置快捷菜單的繪制樣式06 cmnu.RenderMode = ToolStripRenderMode.System;07 //在快捷菜單中添加菜單項08 cmnu.Items.Add("復制");09 cmnu.Items.Add("粘貼");10
11、 cmnu.Items.Add("剪切");11 //給窗體添加快捷菜單12 this.ContextMenuStrip = cmnu;13 },8.1.3 工具欄控件的使用,ToolStrip控件是工具欄控件,它為用戶提供了應用程序中常用菜單命令的快速訪問方式。工具欄通常位于菜單欄的下方,由許多命令按鈕組成,每個按鈕上都有一個代表該按鈕功能的小圖標。由于工具欄方便直觀,
12、所以它被廣泛用于各種應用軟件的主界面當中。ToolStrip控件的項支持8種不同的類型,還具備可擴展性并擁有高度可配置的屬性。帶下拉菜單的工具欄在其他計算機語言中實現(xiàn)比較復雜,但在.NET中只需將工具欄按鈕的類型設置為DropDownButton。具有提示功能的工具欄的創(chuàng)建只需將相應按鈕的ToolTipTile屬性設置為提示內(nèi)容。下表列出了ToolStrip類的常用成員及其說明。,【范例8-1】 ToolStrip工具條的制作,,
13、8.1.4 狀態(tài)欄控件的使用,StatusStrip控件是狀態(tài)欄控件,通常位于窗體的底部,它一般用來顯示應用管理系統(tǒng)的系統(tǒng)信息和軟件操作員信息,如當前日期、時間、操作員、軟件版本等。StatusStrip控件的項可以由ToolStripStatusLable對象、ToolStripDropDownButton對象、ToolStripSplitButton對象和ToolStripProgressBar對象組成。下表列出了StatusSt
14、rip類的常用成員及其說明。,使用StatusStrip控件設計狀態(tài)欄的步驟如下。,⑴ 在Windows窗體中添加一個StatusStrip控件。⑵ 單擊該控件的Items屬性中的按鈕,彈出“項集合編輯器”對話框。⑶ 在“項集合編輯器“對話框中,用戶可以根據(jù)需要選擇添加StatusLabel控件、ProgressBar控件、DropDownButton控件和SplitButton控件,單擊【確定】按鈕,即可完成狀態(tài)欄的設計。,第 8
15、 章Windows應用程序開發(fā)進階——高級窗體控件,菜單控件、工具欄控件和狀態(tài)欄控件 列表視圖和樹視圖控件的使用 字體、顏色對話框、文件對話框 多文檔界面編程,8.2 列表視圖和樹視圖控件,TreeView控件和ListView控件有很多相似的地方,它們都為用戶提供便捷的文件導航功能。不同的是TreeView控件以樹視圖方式展示給用戶,而ListView控件以列表形式展現(xiàn)給用戶。,8.2.1 列表視圖控件的使用,ListVi
16、ew控件可以顯示帶圖標的項列表,用戶可以使用該控件創(chuàng)建類似Windows資源管理器的用戶界面。該控件具有四種視圖模式:“LargeIcon”、“SmallIcon”、“List”和“Details”。下表列出了ListView類的常用成員及其說明。其中View屬性用于獲取或設置項在控件中的顯示方式,默認值為LargeIcon。FullRowSelect屬性是指定只選擇某一項,還是選擇某一項所在的整行,取值為True,表示單擊某項會
17、選擇該項及所有子項;取值為False,表示僅選擇該項本身。,,下面代碼演示了如何使用FullRowSelect屬性。01 this.lvStudent.View = View.Details;02 this.lvStudent.FullRowSelect = true;,【范例8-2】 ListView使用示例,,8.2.2 樹視圖控件的使用,TreeView控件是一個樹形控件。該控件可以為用戶顯示節(jié)點層次結構,每個節(jié)點
18、又可以包含子節(jié)點,包含子節(jié)點的節(jié)點叫父節(jié)點。用戶可以按展開或折疊的方式顯示父節(jié)點或包含子節(jié)點的節(jié)點。另外,通過設置TreeView的CheckBoxes屬性,還可以決定是否在節(jié)點旁顯示復選框。其中Nodes屬性用于設置TreeView控件中的所有節(jié)點。屬性值TreeNodeCollection表示分配給樹視圖控件的樹節(jié)點。,【范例8-3】 TreeView控件使用示例,,第 8 章Windows應用程序開發(fā)進階——高級窗體控件,菜
19、單控件、工具欄控件和狀態(tài)欄控件 列表視圖控件和樹視圖控件的使用 字體、顏色對話框、文件對話框 多文檔界面編程,8.3 完成復雜功能的對話框--通用對話框控件,通用對話框是Mircrosoft Windows提供的一系列統(tǒng)一風格的對話框,其包括字體對話框、顏色對話框、文件對話框和打印對話框等。.NET Framework把這些對話框封裝成組件,用戶可以輕松地使用這些組件創(chuàng)建Windows應用程序。,8.3.1 字體對話框,Fon
20、tDialog對話框是一個設置字體的組件,該組件允許用戶選擇當前安裝在計算機中的字體,還可以設置字體的字形、大小、刪除線等。如圖所示。,下表列出了FontDialog類的主要成員以及說明。,下面對比較重要的成員進行介紹。,⑴ AllowVectorFonts屬性語法:object.AllowVectorFonts[=boolean]⑵ FixedPitchOnly屬性語法:object.FixedPitchOnly[=boole
21、an],下面將演示如何創(chuàng)建FontDialog組件的實例,并設置其屬性,代碼如下。,01 FontDialog FD = new FontDialog();//創(chuàng)建字體對話框02 FD.FontMustExist = true;//確定字體必須存在03 FD.AllowVerticalFonts = true;//設置可以選擇垂直顯示的字體04 FD.ShowEffects = true;//顯示字
22、體預覽窗口05 FD.ShowColor = true;//可以設置06 FD.Color = this.richTextBox1.ForeColor;//設置默認字體顏色07 FD.MaxSize = 100;//設置字體的最大值08 FD.MinSize = 9;//設置字體的最小值09 FD.Font = this.richTextBox1.Font;10 if (FD.Sh
23、owDialog() == DialogResult.OK)11 {12 this.richTextBox1.Font = FD.Font;//獲取用戶選擇的字體13 this.richTextBox1.ForeColor = FD.Color;//獲取用戶選擇的顏色14 },8.3.2 顏色對話框,ColorDialog控件用于選擇顏色,它允許用戶從調色板選擇顏色或自
24、定義顏色。如圖所示。,下表列出了ColorDialog類常用成員及其說明。,下面對比較重要的成員進行介紹。,⑴ AllowFullOpen屬性。語法:object.AllowFullOpen[=boolean]⑵ Color屬性。語法:object.Color[=Color]⑶ FullOpen屬性。語法:object.FullOpen[=boolean],下面將演示如何創(chuàng)建ColorDialog組件的實例,并設置其屬性,代
25、碼如下。,01 ColorDialog cD = new ColorDialog();//創(chuàng)建顏色對話框對象cD02 cD.AllowFullOpen = true//用戶是否可以使用該對話框定義自定義的顏色03 cD.FullOpen = true;//創(chuàng)建自定義顏色的控件是否可見04 cD.ShowHelp = true;//顯示幫助按鈕05 cD.CustomColors = new
26、int[]{0,0,0,0,0,0};06 if (cD.ShowDialog() == DialogResult.OK)//用戶點擊了“確定”按鈕07 {08 rTB.SelectionColor = cD.Color;//獲取用戶選擇的顏色09 }10 else11 {12 rTB.SelectionColor = Color.Black;13 }
27、,8.3.3 文件對話框,文件對話框包含打開文件對話框(OpenFileDialog)和保存文件對話框(SaveFileDialog)。打開文件對話框組件允許用戶選擇要打開的文件,指定組件的Filter屬性可以過濾文件類型。如圖所示。保存文件對話框組件允許用戶將文件保存到指定的位置。SaveFileDialog控件繼承了OpenFileDialog控件的大多數(shù)屬性、方法和事件。,下表列出了OpenFileDialog類的常用成員及
28、其說明。,下面對比較重要的成員進行介紹。,⑴ Filter屬性。獲取或設置當前文件名篩選器字符串,該字符串決定對話框的“文件類型“或”另存為保存類型“框中出現(xiàn)的選擇內(nèi)容。例如,使““對話框只能打開相關的圖片文件(.bmp、.gif、.jpg)。代碼如下。OpenFileDialog1.Filter= "bmp文件(*.bmp)|*.bmp|gif文件(*.gif)|*.gif|jpg文件(*.jpg)|*.jpg&quo
29、t;;⑵ RestoreDirectory屬性。獲取或設置一個值,該值指示對話框在關閉前是否還原當前目錄。⑶ ShowDialog方法。顯示OpenFileDialog控件。語法:object.ShowDialog(),下面將演示如何創(chuàng)建OpenFileDialog組件的實例,并設置其屬性,代碼如下。,01 OpenFileDialog Ofd = new OpenFileDialog();//創(chuàng)建打開文件對話框對象0
30、2 Ofd.Title = "打開播放文件對話框";//設置對話框標題03 Ofd.InitialDirectory = @"C:\";//對話框初始目錄04 Ofd.Filter = "影視文件(*.rmvb)|*.rmvb|所有文件(*.*)|*.*";//定義文件篩選器05 Ofd.FilterIndex = 1;//在對話框中默認顯
31、示的文件篩選器索引06 Ofd.ShowHelp = true;//打開文件對話框顯示幫助按鈕07 Ofd.HelpRequest += new System.EventHandler(this.ShowOpenDialogHelp);08 Ofd.ShowDialog();,,保存文件對話框代碼如下。01 SaveFileDialog Sfd = new SaveFileDialog();//創(chuàng)建
32、保存文件對話框對象02 Sfd.Title = "保存文件對話框";//設置對話框標題03 Sfd.InitialDirectory = @"C:\";//對話框初始目錄04 Sfd.Filter = "Word文檔(*.doc)|*.doc|所有文件(*.*)|*.*";//定義文件篩選器05 Sfd.FilterIndex = 1;/
33、/在對話框中默認顯示的文件篩選器索引06 Sfd.AddExtension = true;//自動在文件名中添加擴展名07 Sfd.CreatePrompt = true;//提示用戶是否創(chuàng)建指定文件名的文件08 Sfd.OverwritePrompt = true;//提示用戶是否覆蓋指定文件名的文件09 Sfd.CheckPathExists = true;10 Sfd.ShowDialo
34、g();,8.3.4 打印對話框,PrintDialog控件用于顯示預先配置的對話框,用戶可以使用該對話框來選擇打印機、選擇要打印的頁以及確定與打印有關的設置。,下面對比較重要的成員進行介紹。,⑴ Document屬性。用于獲取或設置一個值,指示用于獲取PrintDocument對象。屬性值默認值為空引用。⑵ ShowDialog方法。用來顯示與打印機相關設置的對話框。該方法常與Document屬性一起使用。如果用戶在對話框中單擊“
35、確定“,則返回值為DialogResult.OK,否則返回值為DialogResult.Cancel。,,下面將演示如何創(chuàng)建PrintDialog組件的實例,并設置其屬性,代碼如下:01 this.printDialog1.AllowCurrentPage = true;//顯示當前頁02 this.printDialog1.AllowPrintToFile = true;//允許選擇打印到文件03 thi
36、s.printDialog1.AllowSelection = true;04 this.printDialog1.AllowSomePages = true;05 this.printDialog1.PrintToFile = false;//不選擇"打印到文件"06 this.printDialog1.ShowHelp = true;07 this.printDialog1.Sh
37、owNetwork = true;//可以選擇網(wǎng)絡打印機08 this.printDialog1.ShowDialog();,第 8 章Windows應用程序開發(fā)進階——高級窗體控件,菜單控件、工具欄控件和狀態(tài)欄控件 列表視圖控件和樹視圖控件的使用 字體、顏色對話框、文件對話框 多文檔界面編程,8.4 多文檔界面編程,所謂MDI(Multiple Document Interface),就是多文檔界面,它是一種應用非
38、常廣泛的窗體類型,在一個主窗體內(nèi)包含多個子窗體,子窗體永遠不會顯示在主窗體的外面。,8.4.1 多文檔界面應用程序簡介,多文檔界面(MDI),由一個父窗體和若干個子窗體組成的。MDI允許同時顯示多個子窗體,我們平常在用Word、Excel時碰到的就是MDI。用MDI可以在一個應用程序中同時打開多個視圖窗口對應不同的文檔類,所以就大大提高了程序的工作效率。創(chuàng)建MDI窗體有三個主要步驟,分別為:創(chuàng)建MDI父窗體、創(chuàng)建MDI子窗體和從父窗
39、體調用子窗體。MDI應用程序打開多個子窗體時,需要合理安排子窗體的排列方式,要排列WinForms中的子窗口,需要調用Form類的LayoutMdi方法來使用MdiLayout枚舉的成員,該枚舉指定了MDI子窗口在MDI父窗口中的布局。,,下表列出了MdiLayout枚舉的成員。成員名稱說明ArrangeIcons排列所有MDI子窗體的圖標Cascade層疊排列子窗口TileHorizontal水平平鋪子窗口T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- windows應用程序開發(fā)初步常用窗體控件
- java窗體應用程序開發(fā)實訓(最終版)
- windows應用程序界面的設計
- 第17章 創(chuàng)建windows應用程序
- 替換 access 2010 應用程序中的日歷控件
- 5窗體與控件
- vba控件與用戶窗體
- 基于c#的windows 應用程序設計
- vba地控件及用戶窗體
- vb 利用treeview控件實現(xiàn)一個應用程序的導航
- Windows應用程序的用戶界面設計研究.pdf
- vba的控件及用戶窗體
- 如何解決應用程序dll為無效的windows映像
- 淺談c#開發(fā)中webbrowser控件和窗體通信案例研究
- windows server 2003 ad應用程序目錄分區(qū)深入了解
- 基于BREW平臺的應用程序開發(fā).pdf
- png透明窗體全攻略(控件不透明)vc++程序指導
- Android系統(tǒng)移植和應用程序開發(fā).pdf
- 內(nèi)部通訊系統(tǒng)-應用程序開發(fā)課程設計
- 基于asp的web應用程序開發(fā)外文翻譯
評論
0/150
提交評論