第7章Windows應(yīng)用程序設(shè)計_第1頁
第7章Windows應(yīng)用程序設(shè)計_第2頁
第7章Windows應(yīng)用程序設(shè)計_第3頁
第7章Windows應(yīng)用程序設(shè)計_第4頁
第7章Windows應(yīng)用程序設(shè)計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

VisualC#2008程序設(shè)計與應(yīng)用教程第7章第7章Windows應(yīng)用程序設(shè)計主講:鄭殿君VisualC#2008程序設(shè)計與應(yīng)用教程第7章本章要點Windows窗體以及事件的概念。Windows窗體中的常用控件。Windows窗體中常用對話框。VisualC#2008程序設(shè)計與應(yīng)用教程第7章技能目標(biāo)掌握Windows常見控件使用。掌握Windows常見對話框的使用。熟練掌握Windows應(yīng)用程序設(shè)計,能編寫Windows窗體界面程序。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.1工作場景導(dǎo)入完成一個簡單的員工資料管理功能,界面如圖7.1所示,具備添加、刪除、修改員工資料功能。在文本框中輸入員工資料,單擊“添加”按鈕該員工的資料顯示在列表框中;選中列表框中的某一項,該項所表示的員工的資料,顯示在列表框下面的文本框中,單擊“刪除”按鈕,列表中的該項被刪除,即表示選中的該員工被刪除。選中列表框中某一項,修改該員工的資料,單擊“修改”按鈕后,該員工的資料被修改。單擊“清除”按鈕,文本框中的文本被清除。VisualC#2008程序設(shè)計與應(yīng)用教程第7章工作場景示例圖VisualC#2008程序設(shè)計與應(yīng)用教程第7章【引導(dǎo)問題】什么是窗體,什么是事件?窗體有哪些屬性、方法和事件?VisualC#2008中提供哪些常用控件,各種控件的屬性、方法和事件有哪些?如何自定義控件?VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.2Windows窗體7.2.1窗體的基本概念 窗體作為Windows應(yīng)用程序的基本單元,用戶可以通過添加控件來創(chuàng)建用戶所需的界面,并通過編寫代碼來操作數(shù)據(jù)。使用VisualStudio2008可以大大簡化WindowsForms應(yīng)用程序的編寫,VisualStudio2008減少了開發(fā)人員花在界面框架上的編程時間,使開發(fā)人員可以集中精力去解決業(yè)務(wù)問題。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.2.2窗體事件 事件就是在發(fā)生某個操作時操作系統(tǒng)會根據(jù)需要作出相應(yīng)的處理,比如鼠標(biāo)按下、鼠標(biāo)釋放、鼠標(biāo)移動、鍵盤按下、鍵盤釋放等都是事件。這些處理代碼要求程序員在相應(yīng)的事件處理程序中編寫。VisualC#2008程序設(shè)計與應(yīng)用教程第7章以Load事件為例,F(xiàn)orm窗體加載時候,Load時間做初始化頁面顯示的工作。步驟如下:1)新建一個Windows窗體應(yīng)用程序,并命名為ExampleTest。2)從工具箱中拖放一個Label控件至Form1窗體上,并將Label控件的“Name”

屬性設(shè)置為“l(fā)blMessage”,“Text”屬性改為“Welcom”,“Font”的“Bold”屬性改為True。3)在窗體上任意位置單擊,選中要設(shè)置屬性的窗體,選擇“視圖”→“屬性窗口”命令。單擊圖標(biāo),雙擊Load進(jìn)入該事件的代碼編輯文件Form1.cs。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3Windows窗體中的常用控件.NET中的大多數(shù)控件都派生于System.Windows.Forms.Control類。Control類是包含自定義控件、用戶控件和頁在內(nèi)的所有ASP.NET服務(wù)器控件的基類。Control類的核心功能是創(chuàng)建用戶所見的界面。Control類派生于System.ComponentModel.Component類。Component類為Control類提供了所必要的基礎(chǔ)結(jié)構(gòu),將控件拖放到設(shè)計界面,以及包含在另一個對象中時需要用到它。Control類定義多有ASP.NET服務(wù)器控件共享的屬性、方法和時間,如控件的大小位置、外觀和響應(yīng)事件等。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.1Control類大小和位置 控件的位置和大小由Width、Bottom、Height、Left、Right、Top以及輔助屬性Size和Location設(shè)置。Width、Bottom、Height、Left、Right屬性值都是一個整數(shù),Size的值使用一個Size結(jié)構(gòu)來表示,Location的值使用一個Point結(jié)構(gòu)來表示。Size和Point位于System.Drawing命名空間。Dock屬性確定子控件停放在父控件的哪條邊上,Dock采用DockStyle枚舉值,其值包括Left、Right、Top、Bottom、Fill和None。Fill會使控件的大小正好匹配父控件的客戶區(qū)域。Anchor屬性是將子控件的一條邊與父控件的一條邊對齊,它是將與該父控件的邊界的當(dāng)前舉例設(shè)置為常量。例如,若將子控件的左邊界與父控件的左邊界對齊,并重新設(shè)置父控件的大小,子控件的左邊界到父控件的距離保持不變。通過設(shè)置該屬性值,可以在重新設(shè)置父控件的大小時,動態(tài)設(shè)置子控件的大小。Bounds屬性返回一個Rectangle對象,表示一個控件區(qū)域。這個區(qū)域包含滾動條的標(biāo)題欄。Rectangle位于System.Drawing命名空間,ClientSize屬性是一個Size結(jié)構(gòu),表示控件的客戶區(qū)域,不包含滾動條和標(biāo)題欄。VisualC#2008程序設(shè)計與應(yīng)用教程第7章外觀 使用BackColor、ForeColor、BackgroundImage、Font和Text屬性可以設(shè)置控件的外觀。其中BackColor和ForeColor屬性使用System.Drawing.Color對象作為值,BackgroundImage屬性表示獲取或設(shè)置在控件中顯示的背景圖像。Name屬性提供給給程序員,常在編程中使用,作為每個控件的名字被程序員控制與操作。Font和Text屬性處理文字的顯示,要修改Font屬性,需要創(chuàng)建一個Font對象,創(chuàng)建該對象時,要指定字體名稱、字號和樣式。在程序中可以直接訪問Text屬性,用來獲取和設(shè)置Text的值,這樣就可以實現(xiàn)在程序運行過程中修改標(biāo)題的名稱,獲取用戶輸入的數(shù)據(jù)等功能。VisualC#2008程序設(shè)計與應(yīng)用教程第7章用戶交互操作 當(dāng)用戶進(jìn)行某一個操作時,會引發(fā)某個事件的發(fā)生,此時就需要調(diào)用我們寫好的事件處理程序代碼,實現(xiàn)對程序的操作。在VisualC#中,所有的機制都被封裝在控件之中了,大大方便了編寫事件驅(qū)動程序。用戶交互操作其實是指為控件創(chuàng)建和響應(yīng)各種事件。常用的事件主要有鼠標(biāo)事件和鍵盤事件。鼠標(biāo)事件:Click、DoubleClick、MouseDown、MouseEnter、MouseHover、MouseLeave、MouseUp。處理Click和DoubleClick,每次捕獲一個DoubleClick事件時,也會引發(fā)Click事件。如果處理不正確則會引起錯誤。MouseDown和MouseUp是鼠標(biāo)按下和松開引發(fā)的事件,這兩種事件將MouseEventArgs作為參數(shù)。鍵盤事件:鍵盤事件需要一些信息來確定處理什么事件。對于簡單情況,KeyPress事件接受KeyPressEventArgs,它包含表示被按鍵的字符值KeyChar。Handle屬性用于確定事件是否已處理,將Handle屬性設(shè)置為true表示事件不會由操作系統(tǒng)進(jìn)行默認(rèn)處理。鍵盤事件引發(fā)順序為:KeyDown、KeyPress、KeyUp。Enter、GotFocus、LostFocus、Validated和Validating事件處理獲得焦點和失去焦點的控件。Validated和Validating事件分別表示在控件完成驗證時發(fā)生和在控件正在驗證時發(fā)生。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.2按鈕控件(Button、RadioButton和CheckBox控件)幾乎所有的Windows對話框中都存在按鈕控件,Button表示簡單的命令按鈕,該控件的使用通常是在窗體上添加控件,再雙擊它,給Click事件添加代碼。

RadioButton是一個單選按鈕,通常成組出現(xiàn),用于為用戶提供兩個或多個互相排斥的選項,從一組單選按鈕中必須且只能選擇一個。該控件和Button控件一樣都派生于ButtonBase類。該按鈕有很多屬性,該按鈕常用的屬性及說明如表7.3所示。VisualC#2008程序設(shè)計與應(yīng)用教程第7章要把單選按鈕組合在一起,使它們組成一個邏輯單元,必須使用GroupBox控件。首先在窗體上拖放一個GroupBox控件(組框),再把需要的RadioButton按鈕放在分組框的邊界內(nèi),RadioButton按鈕知道如何改變自己的狀態(tài),以反映分組框中唯一被選中的選項。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.3文本框控件(TextBox)文本框(TextBox)經(jīng)常用于獲取用戶輸入或顯示文本,通常用于可編輯文本,也可以設(shè)定其成為只讀控件。文本框能夠顯示多行數(shù)據(jù),并添加基本的格式設(shè)置。Text屬性是文本框最重要的屬性,要顯示的文本就包含在Text屬性中。Text屬性可以在設(shè)計窗口時使用屬性窗口設(shè)置,也可以在運行時用代碼設(shè)置或者通過用戶輸入設(shè)置,同樣也可以在運行時通過讀取Text屬性來獲得文本框的當(dāng)前內(nèi)容。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.4列表視圖控件(ListView)ListView是Windows列表視圖控件,用于顯示來自應(yīng)用程序、數(shù)據(jù)庫或文本文件的信息或者獲取來自用戶的信息。在標(biāo)準(zhǔn)列表視圖對話框中可以進(jìn)行各種查看操作,如圖標(biāo)、詳細(xì)視圖等。列表視圖通常用于顯示數(shù)據(jù),用戶可以對這些數(shù)據(jù)和顯示方式進(jìn)行某些控件,可以把包含在控件中的數(shù)據(jù)顯示為列和行,或者顯示為一列,或者先是為圖標(biāo)形式。ListView控件的主要屬性就是Items,該屬性是一個包含控件所顯示的項的集合,可用于在列表視圖中的添加和移除項。SelectedItems屬性則包含控件中當(dāng)前選定項的集合。如果將MultiSelect屬性設(shè)置為“True”,用戶就可以同時選擇多項。ListViewItem類用于表示列表視圖中的項,這些項可以包含子項,子項包含與父項相關(guān)的信息。在應(yīng)用程序中,我們經(jīng)常使用方法和事件為列表視圖提供附加功能。BeginUpdate和EndUpdate方法用于為列表視圖添加許多項,而且在每次添加項時并不顯示控件的重新繪制,這樣就提高了性能。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.5ComboBox、ListBox和CheckedListBox控件ComboBox、ListBox和CheckedListBox控件都派生于ListControl類,這個類提供了一些基本的列表管理功能。使用列表控件可以給列表添加數(shù)據(jù)和選擇數(shù)據(jù),使用哪個列表取決于列表的用法和列表中的數(shù)據(jù)的類型。如果需要選擇多個選項,或用戶需要在任意時刻查看列表中的幾個項,那么使用ListBox和CheckedListBox控件。如果只選擇一個選項,就可以使用ComboBox控件。通常,ComboBoxListBox節(jié)省空間,因為組合框中可見的部分只有文本框和按鈕部分。使用列表框之前,必須先添加數(shù)據(jù)。應(yīng)該給ListBox.ObjectCollection添加對象。這個集合可以使用Item屬性訪問,可以將任何有效的.NET類型添加到列表中。要標(biāo)識對象,需要設(shè)置DisplayMember屬性和ValueMember屬性。前者告訴列表框控件,在列表框中顯示的對象的哪個屬性,后者是要返回值的對象的屬性。CheckedListBox(復(fù)選列表框)控件可以說是ListBox控件的派生控件,因此繼承了ListBox控件的很多方法和屬性。與列表框相似,復(fù)選列表框作為對話框的一部分出現(xiàn),建議添加一個按鈕,并把該按鈕同列表框并用。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.3.6MenuStrip控件使用MenuStrip控件控件,可以輕松創(chuàng)建類似于MicrosoftOffice軟件中那樣的菜單。MenuStrip控件支持多文檔界面(MDI)和菜單合并、工具提示和溢出??梢酝ㄟ^添加訪問鍵、快捷鍵、選中標(biāo)記、圖像和分隔條,來增強菜單的可用性和可讀性。MenuStrip控件的使用特點如下。可創(chuàng)建支持高級用戶界面和布局功能的易自定義的常用菜單,例如文本和圖像排序和對齊、拖放操作、MDI、溢出和訪問菜單命令的其他模式。支持操作系統(tǒng)的典型外觀和行為??梢詫λ腥萜骱桶捻椷M(jìn)行事件的一致性處理,處理方式與其他控件的事件相同。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.4用戶自定義控件VisualStudio2008附帶了大量的控件,但仍不能滿足各個應(yīng)用程序的特殊需要。比如說,VisualStudio2008自帶的控件不能以我們希望的方式繪制自己,或者控件只能以某種方式使用,而我們卻希望把控件的功能和界面一起封裝,或者需要的控件不存在。此時,就需要自己開發(fā)一個新的控件。使用VisualC#2008開發(fā)定制控件以設(shè)計由預(yù)先存在的控件組成的用戶控件,還可以繼承已有的用戶控件、已經(jīng)存在的Wind很方便,.NETFramework為開發(fā)者提供了豐富的控件創(chuàng)作技術(shù)。不僅可ows窗體控件,甚至還可以設(shè)計執(zhí)行自身繪圖的自定義控件。這里提到的控件都是GUI控件,即可視控件。還有一類控件沒有界面但是可以實現(xiàn)一些事務(wù)邏輯。根據(jù)實際需要可以用以下3種方法來開發(fā)定制控件:1.從Windows窗體控件繼承2.從UserControl類繼承3.從Control類繼承VisualC#2008程序設(shè)計與應(yīng)用教程第7章控件是針對特定目的創(chuàng)建的,創(chuàng)建控件實際上也是一種編程任務(wù),控件創(chuàng)建過程一般包括下列幾個步驟。1) 確定控件要實現(xiàn)的目標(biāo)。2) 確定所需要的控件類型。3) 將功能表示為控件及其子對象的屬性、方法和事件,并指派相應(yīng)的訪問級別。4) 若控件需要自定義繪制,則為其添加對應(yīng)的代碼。5) 創(chuàng)建一個新的項目,對控件進(jìn)行測試和調(diào)試。6) 在添加每個功能時,將控件添加到測試項目以試驗新功能。7) 重復(fù)操作,改進(jìn)設(shè)計。8) 打包和發(fā)布控件。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.5對話框在應(yīng)用程序中,對話框控件也是一種常用的控件,比如確認(rèn)對話框、打開文件或保存文件對話框、字體對話框、顏色對話框等,本小節(jié)將一一講解這些對話框的使用。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.5.1消息對話框消息對話框常在某項操作執(zhí)行結(jié)束時,給用戶的提示或者當(dāng)執(zhí)行某項有風(fēng)險的操作時,要提示用戶是否執(zhí)行。.NET為用戶提供了MessageBox類來實現(xiàn)這些功能,以顯示文本、按鈕和符號(通知或者提示用戶)的符號。MessageBox類通過Show()方法顯示對話框,該方法常用的5種重載方式如下:Show(String)顯示具有指定文本的消息框,例如:Show(String,String)顯示具有指定文本和標(biāo)題的消息框。Show(String,String,MessageBoxButtons)顯示具有指定文本、標(biāo)題、按鈕的消息框。Show(String,String,MessageBoxButtons,MessageBoxIcon)顯示具有指定文本、標(biāo)題、按鈕、圖標(biāo)的消息框。Show(String,String,MessageBoxButtons,MessageBoxIcon,MessageBoxDefaultButton)顯示具有指定文本、標(biāo)題、按鈕、和默認(rèn)按鈕的消息框。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.5.2打開文件對話框打開對話框用于打開一個已經(jīng)存在的文件,.NET為用戶提供了OpenFileDialog類以提示用戶打開文件。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.5.3保存文件對話框除了打開文件對話框控件,還有保存文件對話框,.NET為用戶提供了SaveFileDialog類以提示用戶保存文件。該類的主要屬性和OpenFileDialog類的屬性相似。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.5.4字體和顏色對話框.NET為用戶提供了FontDialog類提示用戶從本地計算機上安裝的字體中選擇一種字體,并提供了ColorDialog類表示一個通用對話框,該對話框顯示可用的顏色及允許用戶自定義顏色的控件。VisualC#2008程序設(shè)計與應(yīng)用教程第7章7.6回到工作場景以上我們講解了關(guān)于窗體和各控件的使用,下面我們回到工作場景,如何利用前面講解的知識來完成工作場景中需要的功能。VisualC#2008程序設(shè)計與應(yīng)用教程第7章項目分析與算法流程設(shè)計1)用戶在文本框中輸入員工的各項資料,獲取文本控件中的文本,并將這些項添加到列表控件ListView中。2)獲取用戶當(dāng)前選中的ListView中的項,調(diào)用ListView的方法,將該項刪除。3)獲取用戶當(dāng)前選中的ListView中的某項,并獲取每一列的數(shù)據(jù),將數(shù)據(jù)分別顯示在文本框中。4)將文本框中的數(shù)據(jù)清除。VisualC#2008程序設(shè)計與應(yīng)用教程第7章界面設(shè)計1)按照1.5小節(jié)中的新建WinForm程序的步驟,新建一個項

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論