




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第10章 Windows控件開發(fā)進階,在前一章中介紹了Windows窗體應(yīng)用程序開發(fā)的基礎(chǔ)知識,以及一些常用控件的用法。本章將會介紹一些更高級的內(nèi)容。掌握這些內(nèi)容將會使WinForms程序界面變得更美觀、實用和動態(tài)。同時也能處理更多復雜的問題。本章主要涉及到的知識點有: 熟悉菜單和工具欄設(shè)計。 編寫單文檔界面程序和多文檔界面程序。 了解窗體的模式,編寫自定義對話框。 熟悉Timer控件和日期類控件的用法。 熟悉容器控件的用法。,10.1 菜單和工具欄,菜單和工具欄幾乎是所有窗體應(yīng)用程序必不可少的一部分,通過菜單和工具欄的設(shè)計,可以使整個應(yīng)用程序邏輯清晰,結(jié)構(gòu)明了。菜單和工具欄也都屬于控件的范疇
2、,本章將講解菜單和工具欄的用法。,10.1.1 菜單和點菜,【本節(jié)示例參考:源代碼chapter1010.1.1MenuExample】 先了解一下實際應(yīng)用中的菜單,在餐館中,菜單是各種菜式的羅列與展示;在網(wǎng)站上,菜單是網(wǎng)站功能的集合與用戶導航;在窗體程序中,菜單一樣是程序功能的匯總與分類。如圖10.1展示了各式各樣的菜單。 Windows開發(fā)用戶界面設(shè)計中一個非常重要的部分就是菜單,從Visual C# 2005開始,菜單的創(chuàng)建就通過MenuStrip控件來實現(xiàn),此控件聚合了菜單的各種樣式,從而使我們編寫菜單變得更加容易。圖10.2展示了Visual C# 2008工具箱中的菜單和工具欄選項
3、卡。,10.1.2 其他菜單項,【本節(jié)示例參考:源代碼chapter1010.1.1MenuExample】 可以看到,菜單項除了MenuItem,還有TextBox、ComboBox和Separator。其中除了Separator外,其他項都可以在一級菜單中出現(xiàn)。 TextBox菜單可以用于接受用戶的輸入,比如說用戶查找、信息搜索等。ComboBox菜單提供一個下拉列表,可以通過選擇下拉列表觸發(fā)不同的事件。如圖10.7所示為添加了文本框和下拉列表的菜單效果。 Separator分割條菜單項用于分割同一級的菜單項,使菜單結(jié)構(gòu)更清晰,如圖10.8所示。“打開”菜單項和“保存”菜單項之間,以及“另
4、存為”菜單項和“退出”菜單項之間,都加了一個Separator分割條菜單項。,10.1.3 上下文菜單,【本節(jié)示例參考:源代碼chapter1010.1.3ContextMenuStripExample】 上下文菜單是C#中的另外一種菜單,又叫彈出菜單或右鍵菜單,是在右鍵單擊相應(yīng)的控件時彈出的菜單。ContextMenuStrip控件提供了與某個控件關(guān)聯(lián)的快捷操作。為了演示上下文菜單的應(yīng)用,現(xiàn)創(chuàng)建一個Windows應(yīng)用程序,添加一個菜單控件MenuStrip和一個文本框TextBox,設(shè)計好控件布局,如圖10.10所示。 下面給文本框添加上下文菜單,在Visual Studio的工具箱中選擇上
5、下文菜單工具ContextMenuStrip,將其添加到窗體,編輯菜單項的方法跟上一節(jié)的類似。下面給上下文菜單添加“復制”、“剪切”、“粘貼”三個菜單項。,10.1.4 添加工具欄,【本節(jié)示例參考:源代碼chapter1010.1.4ToolBarExample】 工具欄是一組圖形化的按鈕,提供了菜單的快捷訪問,工具欄可以整合軟件中常用的操作,增強軟件的易用性。在常用的軟件系統(tǒng)中,工具欄的使用范圍相當廣,圖10.11所示是網(wǎng)頁瀏覽器Firefox的界面效果,其中工具欄起到很重要的導航作用。再如圖10.12所示是文字編輯軟件Word的常用工具欄界面效果,Word提供了更加豐富的工具欄,極大地方便
6、了用戶操作。下面通過一個實例演示工具欄的應(yīng)用。,10.2 SDI和MDI窗體程序,Windows應(yīng)用程序是由一個個的窗體組成的程序,根據(jù)窗體之間的關(guān)系,一般將窗體應(yīng)用程序分為三類:單文檔界面(SDI)應(yīng)用程序、多文檔界面(MDI)應(yīng)用程序和對話框應(yīng)用程序。本節(jié)將對這三種應(yīng)用程序的形式分別進行介紹。,10.2.1 SDI應(yīng)用程序,【本節(jié)示例參考:源代碼chapter1010.2.1SDIExample】 單文檔界面SDI(Single Document Interface)應(yīng)用程序。顧名思義,即一個文檔充當一個應(yīng)用程序的主界面。如果再創(chuàng)建一個文檔,則是另一個實例了。單文檔界面的應(yīng)用程序軟件是非常
7、普遍的,Windows的寫字板就是一個典型的單文檔界面程序,如圖10.13所示。同樣,記事本也是單文檔界面程序,如圖10.14所示。,10.2.2 MDI應(yīng)用程序,【本節(jié)示例參考:源代碼chapter1010.2.2MDIExample】 多文檔界面(MDI)應(yīng)用程序用于同時顯示多個文檔,每個文檔顯示在各自的窗體中。即在一個MDI應(yīng)用程序中,主窗體文檔可以包括多個子窗體。如圖10.18所示,為一個MDI應(yīng)用程序。 可以看到,一個程序可以有很多窗口。通常,這類程序有一個主窗口,主窗口中可以生成很多子窗口。主窗口的菜單中通常有窗口操作的菜單,如圖10.19所示。在這個菜單中顯示所有的窗口、活動的窗
8、口以及窗口的顯示方式等。,10.2.3 對話框應(yīng)用程序,【本節(jié)示例參考:源代碼chapter1010.2.3DialogExample】 對話框是一種特殊的窗體,用于跟用互交互或者傳遞信息。對話框的FormBorderStyle屬性為FixedDialog,用戶可以通過一般的窗體構(gòu)建對話框,同時也可以像在窗體中添加控件一樣,在對話框中添加控件和布局控件樣式。同時,.NET Framework還包含了一些常用的對話框,開發(fā)人員可以直接將其修改之后,應(yīng)用于自己的應(yīng)用程序。 在上一章節(jié),已經(jīng)學習了幾個常用的.NET Framework預定義對話框,如ColorDialog在此就不再介紹了。接下來我們
9、實現(xiàn)自定義對話框,使用自定義對話框的好處是用戶可以自定義對話框顯示的內(nèi)容,實現(xiàn)特殊的功能。,10.3 WinForms高級控件,Windows窗體應(yīng)用程序以其簡單可操作性著稱,除了前面介紹的常用控件而外,C#還提供了其他功能豐富的控件供開發(fā)人員使用。在本節(jié)將介紹幾個功能強大的控件的用法。,10.3.1 日歷控件-MonthCalendar,【本節(jié)示例參考:源代碼chapter1010.3.1MonthCalendarExample】 日歷控件MonthCalendar用于顯示日期和選擇日期,可以通過日歷控件得到當前的日期,也可以得到用戶選擇的日期。下面通過一個簡單的實例來介紹MonthCale
10、ndar的用法。 (1)創(chuàng)建Windows應(yīng)用程序,向窗體中添加一個MonthCalendar控件,添加5個標簽控件,如圖10.35所示。 (2)編寫代碼,當窗體加載的時候,顯示當前日期,程序代碼如下: private void Form1_Load(object sender, EventArgs e) /窗體加載 /將每個標簽的“Text“屬性設(shè)置為不同格式的時間 this.label1.Text = this.monthCalendar1.TodayDate.ToString(); this.label2.Text = this.monthCalendar1.TodayDate.ToLo
11、ngDateString(); this.label3.Text = this.monthCalendar1.TodayDate.ToShortDateString(); this.label4.Text = 開始日期: + this.monthCalendar1.SelectionStart.ToString(); this.label5.Text = 結(jié)束日期: + this.monthCalendar1.SelectionEnd.ToString(); ,10.3.2 日期選擇控件-DateTimePicker,【本節(jié)示例參考:源代碼chapter1010.3.2DateTimePick
12、erExample】 日歷控件除了MonthCalendar外,還有DateTimePicker控件。跟MonthCalendar控件不同的是,DateTimePicker控件只能選擇一個日期,而不是連續(xù)的日期段。 通過DateTimePicker控件的Value屬性即可獲得當前選擇的時間值。下面通過一個實例來演示該控件的用法。現(xiàn)創(chuàng)建一個Windows應(yīng)用程序,設(shè)計窗體界面如圖10.37所示。 當選擇DateTimePicker控件的時間改變時,文本框中將顯示相應(yīng)的時間值。這需要觸發(fā)DateTimePicker控件的ValueChanged事件,編寫事件處理程序代碼如下: private vo
13、id dateTimePicker1_ValueChanged(object sender, EventArgs e) this.txtDateTime.Text = this.dateTimePicker1.Value.ToString(); ,10.3.3 計時器控件-Timer,【本節(jié)示例參考:源代碼chapter1010.3.3TimerExample】 計時器控件用于在一定的時間間隔調(diào)用一段程序代碼。現(xiàn)實中經(jīng)常會遇到這樣的情況,比如鬧鐘每隔1秒鐘走動一次,動畫片每隔幾毫秒時間切換一幀圖像等。這些都可以在程序中實現(xiàn),只要添加一個計時器即可。 Timer控件有兩個屬性非常重要,一個是In
14、terval,用于設(shè)置間隔的時間,以毫秒為單位;一個是Enabled,當設(shè)置為False時,計時器失效,為True則計時器有效。同時,Timer還提供了一個Tick事件,每隔Interval設(shè)置的時間間隔,程序就會觸發(fā)一次Tick事件。 下面通過一個倒計時的例子來學習Timer的應(yīng)用。程序?qū)崿F(xiàn)的功能是:在一個Label標簽中顯示一個數(shù)字,這個數(shù)字從10開始倒計時,每隔1秒,數(shù)字減1,當數(shù)字減少到1的時候,顯示一個感嘆號,同時計時器停止。,10.3.4 面板控件-Panel,【本節(jié)示例參考:源代碼chapter1010.3.4ContainerExample】 Panel面板控件是一種類似于Gr
15、oupBox的容器控件,用于為其他控件提供可識別的分組。使用面板控件的主要功能是細分窗體,使得界面設(shè)計更加靈活美觀。Panel控件的使用也非常靈活,常用的做法就是將面板添加到主窗體,然后可以在面板中裝載更多的控件。下面通過一個簡單的程序?qū)嵗齺硌菔綪anel控件的應(yīng)用,通過Panel控件的顯示和隱藏效果來簡化界面,達到簡潔美觀的目的。,10.3.5 選項卡控件-TabControl,【本節(jié)示例參考:源代碼chapter1010.3.5TabControlExample】 選項卡控件的應(yīng)用在Windows程序中非常普遍,如圖10.49為在Windows操作系統(tǒng)中,查看“我的電腦”屬性的窗體,和查看
16、“桌面”屬性的窗體。其中都用到選項卡控件。,10.4 小結(jié),本章是WinForms控件操作的進階篇,分別向讀者展示了幾種更常用的控件。通過本章,我們學習了以下內(nèi)容。 (1)菜單是程序常用的功能導航方式。WinForms提供了菜單控件MenuStrip,和上下文菜單控件ContextMenuStrip。 (2)工具欄為程序常用的操作提供了便捷訪問的功能,WinForms提供了ToolStrip控件用于實現(xiàn)工具欄。 (3)窗體應(yīng)用程序分為單文檔界面(SDI)應(yīng)用程序、多文檔界面(MDI)應(yīng)用程序和對話框應(yīng)用程序。 (4)MonthCalendar控件和DateTimePicker控件都是用于日期類型的選擇。 (5)Timer計時器控件能夠在一段時間間隔后重復調(diào)用一段代碼,以此實現(xiàn)許多動態(tài)效果。 (6)Panel控件和TabControl控件都是容器控件,容器控件用于方便靈活的布局窗體界面。,本章習題,一、選擇題 1在設(shè)計菜單時,若希望某個菜單項前面有一個“”號,應(yīng)把該菜單項的( )屬性設(shè)置為true AChecked BRadioCheck CShowShortcut DEnabled 2C#程序中,為使變量myForm 引用的窗體對象顯示為對話框,必
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年慶陽市專業(yè)化管理的村黨組織書記招聘筆試真題
- 2024廣東公務(wù)員考試行測真題(行政執(zhí)法類)
- 零基礎(chǔ)稅務(wù)師課件
- 鞏留縣物流公司管理辦法
- 項目工程監(jiān)理管理辦法
- 博士后工作管理暫行辦法
- 射陽縣留守兒童管理辦法
- 不勝任退出管理暫行辦法
- 注冊電氣工程師管理辦法
- 專利代理人注冊管理辦法
- 裝修售后維修合同協(xié)議
- 活禽定點屠宰宰殺場項目可行性報告
- 醫(yī)學臨床“三基”訓練-護士分冊-自測及答案
- 智能樂器演奏輔助系統(tǒng)-全面剖析
- 第30課 在線安全防范-2024-2025學年三年級全一冊《信息技術(shù)》教案
- 《精密電子天平使用教程》課件
- 液壓與氣壓傳動技術(shù) 第四版 課件 任務(wù)三 Q2-8型汽車起重機液壓系統(tǒng)分析
- 礦泉水行業(yè)面臨的挑戰(zhàn)與風險
- 2025年上半年云南文山州州屬事業(yè)單位選調(diào)工作人員112人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年浙教新版八年級地理下冊階段測試試卷
- 鋼結(jié)構(gòu)管廊施工組織設(shè)計
評論
0/150
提交評論