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