版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章第7章Windows應(yīng)用程序設(shè)計(jì)主講:鄭殿君VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章本章要點(diǎn)Windows窗體以及事件的概念。Windows窗體中的常用控件。Windows窗體中常用對話框。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章技能目標(biāo)掌握Windows常見控件使用。掌握Windows常見對話框的使用。熟練掌握Windows應(yīng)用程序設(shè)計(jì),能編寫Windows窗體界面程序。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.1工作場景導(dǎo)入完成一個(gè)簡單的員工資料管理功能,界面如圖7.1所示,具備添加、刪除、修改員工資料功能。在文本框中輸入員工資料,單擊“添加”按鈕該員工的資料顯示在列表框中;選中列表框中的某一項(xiàng),該項(xiàng)所表示的員工的資料,顯示在列表框下面的文本框中,單擊“刪除”按鈕,列表中的該項(xiàng)被刪除,即表示選中的該員工被刪除。選中列表框中某一項(xiàng),修改該員工的資料,單擊“修改”按鈕后,該員工的資料被修改。單擊“清除”按鈕,文本框中的文本被清除。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章工作場景示例圖VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章【引導(dǎo)問題】什么是窗體,什么是事件?窗體有哪些屬性、方法和事件?VisualC#2008中提供哪些常用控件,各種控件的屬性、方法和事件有哪些?如何自定義控件?VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.2Windows窗體7.2.1窗體的基本概念 窗體作為Windows應(yīng)用程序的基本單元,用戶可以通過添加控件來創(chuàng)建用戶所需的界面,并通過編寫代碼來操作數(shù)據(jù)。使用VisualStudio2008可以大大簡化WindowsForms應(yīng)用程序的編寫,VisualStudio2008減少了開發(fā)人員花在界面框架上的編程時(shí)間,使開發(fā)人員可以集中精力去解決業(yè)務(wù)問題。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.2.2窗體事件 事件就是在發(fā)生某個(gè)操作時(shí)操作系統(tǒng)會根據(jù)需要作出相應(yīng)的處理,比如鼠標(biāo)按下、鼠標(biāo)釋放、鼠標(biāo)移動、鍵盤按下、鍵盤釋放等都是事件。這些處理代碼要求程序員在相應(yīng)的事件處理程序中編寫。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章以Load事件為例,F(xiàn)orm窗體加載時(shí)候,Load時(shí)間做初始化頁面顯示的工作。步驟如下:1)新建一個(gè)Windows窗體應(yīng)用程序,并命名為ExampleTest。2)從工具箱中拖放一個(gè)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è)計(jì)與應(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è)計(jì)界面,以及包含在另一個(gè)對象中時(shí)需要用到它。Control類定義多有ASP.NET服務(wù)器控件共享的屬性、方法和時(shí)間,如控件的大小位置、外觀和響應(yīng)事件等。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.3.1Control類大小和位置 控件的位置和大小由Width、Bottom、Height、Left、Right、Top以及輔助屬性Size和Location設(shè)置。Width、Bottom、Height、Left、Right屬性值都是一個(gè)整數(shù),Size的值使用一個(gè)Size結(jié)構(gòu)來表示,Location的值使用一個(gè)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è)置父控件的大小時(shí),動態(tài)設(shè)置子控件的大小。Bounds屬性返回一個(gè)Rectangle對象,表示一個(gè)控件區(qū)域。這個(gè)區(qū)域包含滾動條的標(biāo)題欄。Rectangle位于System.Drawing命名空間,ClientSize屬性是一個(gè)Size結(jié)構(gòu),表示控件的客戶區(qū)域,不包含滾動條和標(biāo)題欄。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章外觀 使用BackColor、ForeColor、BackgroundImage、Font和Text屬性可以設(shè)置控件的外觀。其中BackColor和ForeColor屬性使用System.Drawing.Color對象作為值,BackgroundImage屬性表示獲取或設(shè)置在控件中顯示的背景圖像。Name屬性提供給給程序員,常在編程中使用,作為每個(gè)控件的名字被程序員控制與操作。Font和Text屬性處理文字的顯示,要修改Font屬性,需要創(chuàng)建一個(gè)Font對象,創(chuàng)建該對象時(shí),要指定字體名稱、字號和樣式。在程序中可以直接訪問Text屬性,用來獲取和設(shè)置Text的值,這樣就可以實(shí)現(xiàn)在程序運(yùn)行過程中修改標(biāo)題的名稱,獲取用戶輸入的數(shù)據(jù)等功能。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章用戶交互操作 當(dāng)用戶進(jìn)行某一個(gè)操作時(shí),會引發(fā)某個(gè)事件的發(fā)生,此時(shí)就需要調(diào)用我們寫好的事件處理程序代碼,實(shí)現(xiàn)對程序的操作。在VisualC#中,所有的機(jī)制都被封裝在控件之中了,大大方便了編寫事件驅(qū)動程序。用戶交互操作其實(shí)是指為控件創(chuàng)建和響應(yīng)各種事件。常用的事件主要有鼠標(biāo)事件和鍵盤事件。鼠標(biāo)事件:Click、DoubleClick、MouseDown、MouseEnter、MouseHover、MouseLeave、MouseUp。處理Click和DoubleClick,每次捕獲一個(gè)DoubleClick事件時(shí),也會引發(fā)Click事件。如果處理不正確則會引起錯誤。MouseDown和MouseUp是鼠標(biāo)按下和松開引發(fā)的事件,這兩種事件將MouseEventArgs作為參數(shù)。鍵盤事件:鍵盤事件需要一些信息來確定處理什么事件。對于簡單情況,KeyPress事件接受KeyPressEventArgs,它包含表示被按鍵的字符值KeyChar。Handle屬性用于確定事件是否已處理,將Handle屬性設(shè)置為true表示事件不會由操作系統(tǒng)進(jìn)行默認(rèn)處理。鍵盤事件引發(fā)順序?yàn)椋篕eyDown、KeyPress、KeyUp。Enter、GotFocus、LostFocus、Validated和Validating事件處理獲得焦點(diǎn)和失去焦點(diǎn)的控件。Validated和Validating事件分別表示在控件完成驗(yàn)證時(shí)發(fā)生和在控件正在驗(yàn)證時(shí)發(fā)生。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.3.2按鈕控件(Button、RadioButton和CheckBox控件)幾乎所有的Windows對話框中都存在按鈕控件,Button表示簡單的命令按鈕,該控件的使用通常是在窗體上添加控件,再雙擊它,給Click事件添加代碼。
RadioButton是一個(gè)單選按鈕,通常成組出現(xiàn),用于為用戶提供兩個(gè)或多個(gè)互相排斥的選項(xiàng),從一組單選按鈕中必須且只能選擇一個(gè)。該控件和Button控件一樣都派生于ButtonBase類。該按鈕有很多屬性,該按鈕常用的屬性及說明如表7.3所示。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章要把單選按鈕組合在一起,使它們組成一個(gè)邏輯單元,必須使用GroupBox控件。首先在窗體上拖放一個(gè)GroupBox控件(組框),再把需要的RadioButton按鈕放在分組框的邊界內(nèi),RadioButton按鈕知道如何改變自己的狀態(tài),以反映分組框中唯一被選中的選項(xiàng)。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.3.3文本框控件(TextBox)文本框(TextBox)經(jīng)常用于獲取用戶輸入或顯示文本,通常用于可編輯文本,也可以設(shè)定其成為只讀控件。文本框能夠顯示多行數(shù)據(jù),并添加基本的格式設(shè)置。Text屬性是文本框最重要的屬性,要顯示的文本就包含在Text屬性中。Text屬性可以在設(shè)計(jì)窗口時(shí)使用屬性窗口設(shè)置,也可以在運(yùn)行時(shí)用代碼設(shè)置或者通過用戶輸入設(shè)置,同樣也可以在運(yùn)行時(shí)通過讀取Text屬性來獲得文本框的當(dāng)前內(nèi)容。VisualC#2008程序設(shè)計(jì)與應(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,該屬性是一個(gè)包含控件所顯示的項(xiàng)的集合,可用于在列表視圖中的添加和移除項(xiàng)。SelectedItems屬性則包含控件中當(dāng)前選定項(xiàng)的集合。如果將MultiSelect屬性設(shè)置為“True”,用戶就可以同時(shí)選擇多項(xiàng)。ListViewItem類用于表示列表視圖中的項(xiàng),這些項(xiàng)可以包含子項(xiàng),子項(xiàng)包含與父項(xiàng)相關(guān)的信息。在應(yīng)用程序中,我們經(jīng)常使用方法和事件為列表視圖提供附加功能。BeginUpdate和EndUpdate方法用于為列表視圖添加許多項(xiàng),而且在每次添加項(xiàng)時(shí)并不顯示控件的重新繪制,這樣就提高了性能。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.3.5ComboBox、ListBox和CheckedListBox控件ComboBox、ListBox和CheckedListBox控件都派生于ListControl類,這個(gè)類提供了一些基本的列表管理功能。使用列表控件可以給列表添加數(shù)據(jù)和選擇數(shù)據(jù),使用哪個(gè)列表取決于列表的用法和列表中的數(shù)據(jù)的類型。如果需要選擇多個(gè)選項(xiàng),或用戶需要在任意時(shí)刻查看列表中的幾個(gè)項(xiàng),那么使用ListBox和CheckedListBox控件。如果只選擇一個(gè)選項(xiàng),就可以使用ComboBox控件。通常,ComboBoxListBox節(jié)省空間,因?yàn)榻M合框中可見的部分只有文本框和按鈕部分。使用列表框之前,必須先添加數(shù)據(jù)。應(yīng)該給ListBox.ObjectCollection添加對象。這個(gè)集合可以使用Item屬性訪問,可以將任何有效的.NET類型添加到列表中。要標(biāo)識對象,需要設(shè)置DisplayMember屬性和ValueMember屬性。前者告訴列表框控件,在列表框中顯示的對象的哪個(gè)屬性,后者是要返回值的對象的屬性。CheckedListBox(復(fù)選列表框)控件可以說是ListBox控件的派生控件,因此繼承了ListBox控件的很多方法和屬性。與列表框相似,復(fù)選列表框作為對話框的一部分出現(xiàn),建議添加一個(gè)按鈕,并把該按鈕同列表框并用。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.3.6MenuStrip控件使用MenuStrip控件控件,可以輕松創(chuàng)建類似于MicrosoftOffice軟件中那樣的菜單。MenuStrip控件支持多文檔界面(MDI)和菜單合并、工具提示和溢出??梢酝ㄟ^添加訪問鍵、快捷鍵、選中標(biāo)記、圖像和分隔條,來增強(qiáng)菜單的可用性和可讀性。MenuStrip控件的使用特點(diǎn)如下??蓜?chuàng)建支持高級用戶界面和布局功能的易自定義的常用菜單,例如文本和圖像排序和對齊、拖放操作、MDI、溢出和訪問菜單命令的其他模式。支持操作系統(tǒng)的典型外觀和行為。可以對所有容器和包含的項(xiàng)進(jìn)行事件的一致性處理,處理方式與其他控件的事件相同。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.4用戶自定義控件VisualStudio2008附帶了大量的控件,但仍不能滿足各個(gè)應(yīng)用程序的特殊需要。比如說,VisualStudio2008自帶的控件不能以我們希望的方式繪制自己,或者控件只能以某種方式使用,而我們卻希望把控件的功能和界面一起封裝,或者需要的控件不存在。此時(shí),就需要自己開發(fā)一個(gè)新的控件。使用VisualC#2008開發(fā)定制控件以設(shè)計(jì)由預(yù)先存在的控件組成的用戶控件,還可以繼承已有的用戶控件、已經(jīng)存在的Wind很方便,.NETFramework為開發(fā)者提供了豐富的控件創(chuàng)作技術(shù)。不僅可ows窗體控件,甚至還可以設(shè)計(jì)執(zhí)行自身繪圖的自定義控件。這里提到的控件都是GUI控件,即可視控件。還有一類控件沒有界面但是可以實(shí)現(xiàn)一些事務(wù)邏輯。根據(jù)實(shí)際需要可以用以下3種方法來開發(fā)定制控件:1.從Windows窗體控件繼承2.從UserControl類繼承3.從Control類繼承VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章控件是針對特定目的創(chuàng)建的,創(chuàng)建控件實(shí)際上也是一種編程任務(wù),控件創(chuàng)建過程一般包括下列幾個(gè)步驟。1) 確定控件要實(shí)現(xiàn)的目標(biāo)。2) 確定所需要的控件類型。3) 將功能表示為控件及其子對象的屬性、方法和事件,并指派相應(yīng)的訪問級別。4) 若控件需要自定義繪制,則為其添加對應(yīng)的代碼。5) 創(chuàng)建一個(gè)新的項(xiàng)目,對控件進(jìn)行測試和調(diào)試。6) 在添加每個(gè)功能時(shí),將控件添加到測試項(xiàng)目以試驗(yàn)新功能。7) 重復(fù)操作,改進(jìn)設(shè)計(jì)。8) 打包和發(fā)布控件。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.5對話框在應(yīng)用程序中,對話框控件也是一種常用的控件,比如確認(rèn)對話框、打開文件或保存文件對話框、字體對話框、顏色對話框等,本小節(jié)將一一講解這些對話框的使用。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.5.1消息對話框消息對話框常在某項(xiàng)操作執(zhí)行結(jié)束時(shí),給用戶的提示或者當(dāng)執(zhí)行某項(xiàng)有風(fēng)險(xiǎn)的操作時(shí),要提示用戶是否執(zhí)行。.NET為用戶提供了MessageBox類來實(shí)現(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è)計(jì)與應(yīng)用教程第7章7.5.2打開文件對話框打開對話框用于打開一個(gè)已經(jīng)存在的文件,.NET為用戶提供了OpenFileDialog類以提示用戶打開文件。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.5.3保存文件對話框除了打開文件對話框控件,還有保存文件對話框,.NET為用戶提供了SaveFileDialog類以提示用戶保存文件。該類的主要屬性和OpenFileDialog類的屬性相似。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.5.4字體和顏色對話框.NET為用戶提供了FontDialog類提示用戶從本地計(jì)算機(jī)上安裝的字體中選擇一種字體,并提供了ColorDialog類表示一個(gè)通用對話框,該對話框顯示可用的顏色及允許用戶自定義顏色的控件。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章7.6回到工作場景以上我們講解了關(guān)于窗體和各控件的使用,下面我們回到工作場景,如何利用前面講解的知識來完成工作場景中需要的功能。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章項(xiàng)目分析與算法流程設(shè)計(jì)1)用戶在文本框中輸入員工的各項(xiàng)資料,獲取文本控件中的文本,并將這些項(xiàng)添加到列表控件ListView中。2)獲取用戶當(dāng)前選中的ListView中的項(xiàng),調(diào)用ListView的方法,將該項(xiàng)刪除。3)獲取用戶當(dāng)前選中的ListView中的某項(xiàng),并獲取每一列的數(shù)據(jù),將數(shù)據(jù)分別顯示在文本框中。4)將文本框中的數(shù)據(jù)清除。VisualC#2008程序設(shè)計(jì)與應(yīng)用教程第7章界面設(shè)計(jì)1)按照1.5小節(jié)中的新建WinForm程序的步驟,新建一個(gè)項(xiàng)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國單靶射頻磁控濺射鍍膜儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球不銹鋼單刃剃須刀片行業(yè)調(diào)研及趨勢分析報(bào)告
- 幼兒繪本講述與演繹經(jīng)典幼兒繪本介紹講解
- 2025室內(nèi)植物出租合同范文
- 全新員工合作協(xié)議書合同下載
- 收購合同范本
- 軟件系統(tǒng)維護(hù)服務(wù)合同
- 指標(biāo)租賃合同年
- 2025合同模板信息服務(wù)部門的組織結(jié)構(gòu)范本
- 建筑工程改造施工合同范本
- 《航運(yùn)市場營銷》課件-海運(yùn)巨頭馬士基
- 博物館布展項(xiàng)目施工組織設(shè)計(jì)(完整模板)
- 繪本創(chuàng)作方案
- 《童年的水墨畫》的說課課件
- 地鐵保潔服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2023年河南省新鄉(xiāng)市鳳泉區(qū)事業(yè)單位招聘53人高頻考點(diǎn)題庫(共500題含答案解析)模擬練習(xí)試卷
- 2023年小升初簡歷下載
- 廣府文化的奇葩
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件(2018年版)解析
- 七年級地理下冊期末試卷(人教版)
- 第八節(jié) 元代散曲
評論
0/150
提交評論