工作計(jì)劃學(xué)習(xí)情境4C程序設(shè)計(jì)_第1頁(yè)
工作計(jì)劃學(xué)習(xí)情境4C程序設(shè)計(jì)_第2頁(yè)
工作計(jì)劃學(xué)習(xí)情境4C程序設(shè)計(jì)_第3頁(yè)
工作計(jì)劃學(xué)習(xí)情境4C程序設(shè)計(jì)_第4頁(yè)
工作計(jì)劃學(xué)習(xí)情境4C程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué)習(xí)情境四:Windows應(yīng)用程序開(kāi)發(fā)——“注冊(cè)窗口和多文檔窗口的實(shí)現(xiàn)”學(xué)習(xí)領(lǐng)域C#程序設(shè)計(jì)總課時(shí)48學(xué)習(xí)情境Windows應(yīng)用程序開(kāi)發(fā)——“注冊(cè)窗口和多文檔窗口的實(shí)現(xiàn)”參考課時(shí)15教學(xué)安排:第2學(xué)期學(xué)習(xí)任務(wù):創(chuàng)建Windows應(yīng)用程序Windows窗體中的基本控件Lable、Button、ListBox、ComboBox、TabControl、PictureBox的用法MessageBox對(duì)象Windows窗體中的高級(jí)控件ListView、TreeView的用法創(chuàng)建SDI和MDI應(yīng)用程序菜單和工具欄應(yīng)用常見(jiàn)對(duì)話框的應(yīng)用學(xué)習(xí)目標(biāo):創(chuàng)建Windows應(yīng)用程序的步驟Windows窗體中的基本控件的應(yīng)用Windows窗體中的高級(jí)控件ListView、TreeView的用法創(chuàng)建SDI和MDI應(yīng)用程序菜單和工具欄應(yīng)用常見(jiàn)對(duì)話框的應(yīng)用難點(diǎn):Windows窗體中的高級(jí)控件ListView、TreeView的用法多文檔和單文檔應(yīng)用程序快捷菜單的應(yīng)用狀態(tài)欄的應(yīng)用主要內(nèi)容及標(biāo)準(zhǔn):?jiǎn)雾?xiàng)能力評(píng)價(jià)內(nèi)容評(píng)價(jià)標(biāo)準(zhǔn)Windows窗體中的常用控件的用法消息框的應(yīng)用列表視圖控件的應(yīng)用樹視圖控件的應(yīng)用多文檔和單文檔應(yīng)用程序的應(yīng)用菜單和工具欄應(yīng)用狀態(tài)欄的應(yīng)用Windows窗體中的常用控件的用法和屬性設(shè)置使用MessageBox進(jìn)行消息處理窗體中控件布局的技巧樹視圖控件的應(yīng)用菜單提供將命令分組的方法,可以幫助用戶快速訪問(wèn)。工具欄包含工具按鈕。可以對(duì)程序中常用的菜單命令提供快速訪問(wèn)狀態(tài)欄的使用文件對(duì)話框的使用字體對(duì)話框和顏色對(duì)話框的應(yīng)用1熟練.Windows窗體中的常用控件的用法和屬性設(shè)置2.MessageBox消息處理的各種用法3.熟練在窗體中對(duì)控件布局的技巧4.樹視圖控件在應(yīng)用程序中的應(yīng)用5.菜單提供將命令分組的方法,可以幫助用戶快速訪問(wèn)。6.可以對(duì)程序中常用的菜單命令提供快速訪問(wèn)7.熟練運(yùn)用狀態(tài)欄顯示在窗體的底部,并顯示應(yīng)用程序狀態(tài)信息8.文件對(duì)話框使用9.熟練設(shè)置應(yīng)用字體和顏色教學(xué)方法建議:講述法項(xiàng)目式教學(xué)法任務(wù)教學(xué)法實(shí)踐操作法考核與評(píng)價(jià):1.基本知識(shí)技能應(yīng)用評(píng)價(jià)2.任務(wù)完成情況評(píng)價(jià)3.工作態(tài)度評(píng)價(jià)教學(xué)環(huán)境:微機(jī)、白板、投影儀、多媒體教學(xué)系統(tǒng)、多媒體課件、網(wǎng)絡(luò)教學(xué)資源Win2000、IIS、Dreamweaver、VisualStudio2005、Access、SQLServer教師需要的能力與知識(shí):對(duì)Windows窗體整體把握,對(duì)Windows窗體中控件布局設(shè)置Windows窗體中的常用控件的用法和屬性設(shè)置使用MessageBox進(jìn)行消息處理窗體中控件布局的技巧樹視圖控件的應(yīng)用菜單提供將命令分組的方法,可以幫助用戶快速訪問(wèn)。工具欄包含工具按鈕??梢詫?duì)程序中常用的菜單命令提供快速訪問(wèn)狀態(tài)欄顯示在窗體的底部,一般顯示有關(guān)應(yīng)用程序狀態(tài)的信息文件對(duì)話框可以幫助用戶快速打開(kāi)和保存文件字體對(duì)話框和顏色對(duì)話框用于設(shè)置應(yīng)用程序中需要的字體和顏色學(xué)生需要的能力與知識(shí):Windows窗體中的常用控件的用法和屬性設(shè)置使用MessageBox進(jìn)行消息處理窗體中控件布局的技巧樹視圖控件的應(yīng)用菜單提供將命令分組的方法,可以幫助用戶快速訪問(wèn)。工具欄包含工具按鈕??梢詫?duì)程序中常用的菜單命令提供快速訪問(wèn)狀態(tài)欄顯示在窗體的底部,一般顯示有關(guān)應(yīng)用程序狀態(tài)的信息文件對(duì)話框可以幫助用戶快速打開(kāi)和保存文件字體對(duì)話框和顏色對(duì)話框用于設(shè)置應(yīng)用程序中需要的字體和顏色學(xué)習(xí)情境四Windows應(yīng)用程序開(kāi)發(fā):——“注冊(cè)窗口和多文檔窗口的實(shí)現(xiàn)”任務(wù)書1.任務(wù)設(shè)計(jì)通過(guò)學(xué)習(xí)Windows窗體應(yīng)用程序的相關(guān)內(nèi)容。事實(shí)上,我們每天都會(huì)接觸到不同的Windows窗體,操作系統(tǒng)中”我的電腦”、”記事本”等,這些窗口有相似的特點(diǎn),可以改變大小,可以在窗體上添加按鈕和菜單等。Windows應(yīng)用程序一般都由一個(gè)或多個(gè)窗體組成,這些窗體可包含文本框、按鈕、列表框等控件,可以實(shí)現(xiàn)用戶與應(yīng)用程序交互。單文檔和多文檔應(yīng)用程序的運(yùn)用,Windows應(yīng)用程序中菜單和工具欄的應(yīng)用。本情境主要學(xué)習(xí)創(chuàng)建Windows應(yīng)用程序的方法和實(shí)現(xiàn)Windows應(yīng)用程序功能的基本控件。2.任務(wù)準(zhǔn)備開(kāi)發(fā)環(huán)境的配置:提供開(kāi)發(fā)所需環(huán)境,包括VisualStudio2005或isualStudio2005,.NETFramework。3.任務(wù)指導(dǎo)首先,將本情景的概念理解并熟練運(yùn)用,理解Windows應(yīng)用程序的文本框、按鈕、列表框等控件,單文檔和多文檔應(yīng)用程序的運(yùn)用,Windows應(yīng)用程序中菜單和工具欄的應(yīng)用。最后完成實(shí)現(xiàn)“注冊(cè)窗口和多文檔窗口”的應(yīng)用程序。4.任務(wù)分配分角色進(jìn)行,按組完成該項(xiàng)目。要求在項(xiàng)目中分為不同角色完成下列任務(wù):完成總體設(shè)計(jì)任務(wù)要求完成項(xiàng)目規(guī)劃設(shè)計(jì)完成概要設(shè)計(jì)任務(wù)要求完成項(xiàng)目目標(biāo)、開(kāi)發(fā)及運(yùn)行環(huán)境的配置完成詳細(xì)設(shè)計(jì)任務(wù)要求完成集成環(huán)境的面板配置,新項(xiàng)目的創(chuàng)建,并測(cè)試功能。(4)實(shí)現(xiàn)“注冊(cè)窗口和多文檔窗口”的程序設(shè)計(jì)。學(xué)習(xí)情境四:Windows應(yīng)用程序開(kāi)發(fā)——“注冊(cè)窗口和多文檔窗口的實(shí)現(xiàn)”前面學(xué)習(xí)的內(nèi)容都是用命令行演示的,從現(xiàn)在學(xué)習(xí)Windows窗體應(yīng)用程序的相關(guān)內(nèi)容。Windows窗體應(yīng)用程序也就是WinForms應(yīng)用程序。事實(shí)上,我們每天都會(huì)接觸到不同的Windows窗體,操作系統(tǒng)中我的電腦、記事本、聽(tīng)歌的軟件窗口等,這些窗口有相似的特點(diǎn),可以改變大小,可以在窗體上添加按鈕和菜單等。Windows應(yīng)用程序一般都由一個(gè)或多個(gè)窗體組成,這些窗體可包含文本框、按鈕、列表框等控件,可以實(shí)現(xiàn)用戶與應(yīng)用程序交互。本情境主要學(xué)習(xí)創(chuàng)建Windows應(yīng)用程序的方法和實(shí)現(xiàn)Windows應(yīng)用程序功能的基本控件。主要內(nèi)容如下:創(chuàng)建Windows應(yīng)用程序。Windows窗體中的基本控件Lable、Button、ListBox、ComboBox、TabControl、PictureBox的用法。MessageBox對(duì)象。Windows窗體中的高級(jí)控件ListView、TreeView的用法。如何創(chuàng)建SDI和MDI應(yīng)用程序。菜單和工具欄在Windows應(yīng)用程序中的應(yīng)用。如何使用各種常見(jiàn)對(duì)話框。對(duì)話框的模式。1用C#創(chuàng)建Windows應(yīng)用程序.NETFramework提供了Windows窗體和窗體中所需要的控件,使創(chuàng)建Windows應(yīng)用程序變得非常簡(jiǎn)單,可以在編寫極少量代碼的情況下創(chuàng)建功能強(qiáng)大的應(yīng)用程序。1.1創(chuàng)建第一個(gè)Windows應(yīng)用程序創(chuàng)建Windows應(yīng)用程序的步驟如下:(1)選擇“開(kāi)始”“程序”“MicrosoftVisualStudio2005”命令,打開(kāi)VS2005編譯器。(2)選擇“文件”“新建”“項(xiàng)目”選項(xiàng)。(3)項(xiàng)目類型選擇“VisualC#”,模板選擇“Windows窗口應(yīng)用程序”。(4)選擇文件存放位置,為項(xiàng)目命名,單擊“確定”按鈕,即可進(jìn)入VS2005界面。用VisualC#創(chuàng)建Windows應(yīng)用程序項(xiàng)目時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)類名為Form的窗體。此時(shí)單擊“調(diào)試”,即可運(yùn)行程序。效果如上圖Windows應(yīng)用程序的VS界面并不復(fù)雜,除了菜單欄、工具欄等通用的條目外,左邊是“工具箱”面板,為Windows窗體應(yīng)用程序開(kāi)發(fā)提供強(qiáng)有力的工具。中間是“窗體設(shè)計(jì)器”,右邊是“解決方案資源管理器”面板,下面是屬性面板等。1.2Windows應(yīng)用程序的文件夾結(jié)構(gòu)創(chuàng)建了Windows應(yīng)用程序后,下面來(lái)看看Windows應(yīng)用程序的文件夾結(jié)構(gòu)。Windows應(yīng)用程序的文件都由解決方案資源管理器統(tǒng)一管理,如下圖所示。解決方案資源管理器中包含解決方案名稱、項(xiàng)目名稱和組成項(xiàng)目的文件。其中From1.cs是窗體文件,對(duì)窗體編寫的代碼都放到這個(gè)文件中,單擊From1.cs文件前的加號(hào),可以看到From1.Designer.cs文件,此文件即為窗體設(shè)計(jì)文件,其中的代碼是對(duì)窗體進(jìn)行編輯時(shí)自動(dòng)生成的,一般不需要修改。Program.cs文件是主程序文件,包含程序的入口函數(shù)Main(),該程序文件和Main()方法中的代碼都是程序自動(dòng)生成的,一般不需要修改。生成的代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Windows.Forms;namespaceExample_FormTest{staticclassProgram{///<summary>///應(yīng)用程序的主入口點(diǎn)。///</summary>[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newfrmStudent());}}}這段代碼要關(guān)注的是Application.Run(newForm1())方法,Run方法運(yùn)行窗體,方法中的參數(shù)指定運(yùn)行的窗體類名。默認(rèn)參數(shù)為NewForm1(),即默認(rèn)將Form1窗體作為首選運(yùn)行的窗體,如果要改變程序的起始運(yùn)行窗體,修改其中的參數(shù)即可。2Windows窗體簡(jiǎn)介在WindowsForms中,窗體是用于向用戶顯示信息的可視圖面。如果把構(gòu)建可視程序界面看作畫圖,那么窗體就類似于做圖用的畫布,在畫布上可以添加你想繪制的任何圖像。通過(guò)在窗體上放置控件,并開(kāi)發(fā)對(duì)用戶操作(如鼠標(biāo)單擊或按鍵)的響應(yīng)來(lái)構(gòu)建WindowsForms應(yīng)用程序。2.1窗體的屬性在VS2005中,WinForms應(yīng)用程序的窗體文件有兩種編輯窗口,分別是窗體設(shè)計(jì)器和代碼編輯窗口(如下圖所示)。窗體設(shè)計(jì)器窗口是進(jìn)行可視化操作的窗口,使用鼠標(biāo)進(jìn)行窗體界面設(shè)計(jì)、控件拖放、設(shè)計(jì)窗體屬性都可在此完成,不需要編寫代碼。WinForms中的窗體就是一個(gè)類,類中包括屬性和方法。窗體重要屬性如表所示:屬性說(shuō)明Name窗體的名字Text窗體標(biāo)題欄中顯示的文本BackColor背景顏色FormBorderStyle窗體顯示邊框樣式,默認(rèn)falseShowInTastBar確定窗體是否出現(xiàn)在Windows任務(wù)欄中,默認(rèn)trueMaximizeBox確定窗體標(biāo)題欄中是否現(xiàn)實(shí)最大化按鈕,默認(rèn)trueTopMost指示確窗體是否始終顯示在該屬性為false的窗體上,默認(rèn)false窗體中的屬性和普通類的屬性是相同的,只是操作更方便,用可視化方式和代碼編寫方式都可實(shí)現(xiàn)。1、窗體的名稱屬性(Name)設(shè)置窗體名稱的屬性是Name,該屬性值主要用于在程序代碼中引用窗體。在初始新建一個(gè)Windows應(yīng)用程序項(xiàng)目時(shí),自動(dòng)創(chuàng)建一個(gè)窗體,該窗體的名稱被默認(rèn)為Form1;添加第2個(gè)窗體,其名稱被默認(rèn)為Form2,依次類推。2、窗體的標(biāo)題屬性(Text)Text屬性用于設(shè)置窗體標(biāo)題欄顯示的內(nèi)容,它的值是一個(gè)字符串。3、窗體的控制菜單屬性(1)ControlBox屬性:用來(lái)設(shè)置窗體上是否有控制菜單(2)MaximizeBox屬性:用于設(shè)置窗體上的最大化按鈕(3)MinimizeBox屬性:用于設(shè)置窗體上的最小化按鈕4、影響窗體外觀的屬性(1)FormBorderStyle屬性:用于控制窗體邊界的類型,有7個(gè)可選值。None、Fixed3D、FixedDialog、FixedSingle、Sizable、FixedToolWindow、SizableToolWindow。(2)Size屬性:用來(lái)設(shè)置窗體的大小。(3)Location屬性:設(shè)置窗體在屏幕上的位置,即設(shè)置窗體左上角的坐標(biāo)值。(4)BackColor屬性:用于設(shè)置窗體的背景顏色,可以從彈出的調(diào)色板中選擇。(5)BackgroundImage屬性:用于設(shè)置窗體的背景圖像。(6)Opacity屬性:該屬性用來(lái)設(shè)置窗體的透明度,其值為100%時(shí),窗體完全不透明;其值為0%時(shí),窗體完全透明。2.2窗體的重要事件上一情境學(xué)習(xí)了事件的概念和使用,了解了事件的運(yùn)行機(jī)制,Windows編程技術(shù)都是建立在事件基礎(chǔ)上的。在窗體和控件中,我們看到很多事件,Windows應(yīng)用程序就是通過(guò)對(duì)事件進(jìn)行編碼來(lái)實(shí)現(xiàn)具體功能。窗體的重要事件如下表所示。事件說(shuō)明Load窗體加載時(shí)發(fā)生MouseClick鼠標(biāo)單擊事件,用戶單擊窗體時(shí)觸發(fā)MouseDoubleClick鼠標(biāo)單擊事件,用戶雙擊窗體時(shí)觸發(fā)MouseMove鼠標(biāo)移動(dòng)事件,用戶鼠標(biāo)移動(dòng)時(shí)觸發(fā)KeyDown用戶按下某鍵時(shí)觸發(fā)KeyUp鍵盤釋放事件,釋放鍵時(shí)觸發(fā)VS2005編寫事件處理程序時(shí),遵循以下步驟:?jiǎn)螕粢獎(jiǎng)?chuàng)建事件處理程序的窗體和控件。在屬性窗口中單擊“事件”按鈕。雙擊創(chuàng)建事件處理程序的事件。打開(kāi)事件處理的方法,編寫處理代碼?,F(xiàn)在來(lái)編寫單擊窗體MouseClick事件的處理程序,當(dāng)鼠標(biāo)單擊窗體時(shí),在窗體的標(biāo)題欄顯示“我的第一個(gè)Windows程序”。程序編寫步驟:在窗體設(shè)計(jì)器窗口選中窗體。在屬性窗口單擊“事件”按鈕,打開(kāi)事件選項(xiàng)卡。選中MouseClick事件。雙擊MouseClick事件右邊的單元格,即可生成MouseClick事件處理程序方法。在生成的事件處理程序方法中編寫事件處理代碼:privatevoidfrmstudent_mouseClick(objectsender,MouseEventArgse){this.text=”我的第一個(gè)Windows程序”;}下面分析事件中的代碼:this和前面學(xué)過(guò)的用法相同,代表當(dāng)前對(duì)象,在窗體中使用時(shí),即代表當(dāng)前窗體對(duì)象。Text是窗體的Text屬性,將其值設(shè)置為“=”右面的字符串。Sender是事件源,表示誰(shuí)引發(fā)該事件,在此事件中,事件源就是窗體。e代表鼠標(biāo)事件參數(shù)3Windows窗體中的常用控件.NETFramework提供了非常多的控件,以便能夠快速開(kāi)發(fā)專業(yè)的Windows應(yīng)用程序?,F(xiàn)通過(guò)“學(xué)生管理系統(tǒng)”項(xiàng)目來(lái)學(xué)習(xí)常用的控件。首先新建一個(gè)項(xiàng)目叫做StudentManage,項(xiàng)目中添加兩個(gè)窗體,一個(gè)是登錄界面,一個(gè)是注冊(cè)界面,通過(guò)這兩個(gè)窗體來(lái)學(xué)習(xí)窗體中的一些基本控件。登錄界面如下圖左所示,注冊(cè)界面如下圖右所示。學(xué)生登錄窗口包括兩個(gè)標(biāo)簽(Label)、兩個(gè)文本框(TextBox)、兩個(gè)按鈕(Button)控件。窗體的Text屬性值設(shè)為“登錄”,Name屬性設(shè)為“frmLogin”,其它默認(rèn)即可。學(xué)生注冊(cè)窗口的設(shè)置在后面學(xué)習(xí)。下面學(xué)習(xí)控件的用法。3.1標(biāo)簽(Lable)控件和超鏈接標(biāo)簽(LinkLable)控件標(biāo)簽(Lable)控件是最常用的控件,在任何Windows應(yīng)用程序中都可以看到標(biāo)簽控件。標(biāo)簽控件用于顯示用戶不能編輯的文本或圖像,常用于對(duì)窗體上各種控件進(jìn)行標(biāo)注或說(shuō)明。上圖“學(xué)生登錄”窗口中的“用戶名”和“密碼”都是標(biāo)簽。工具箱中的標(biāo)簽控件如下圖所示。在窗體中添加標(biāo)簽控件時(shí),會(huì)創(chuàng)建一個(gè)Label類的實(shí)例。Label控件的部分屬性和方法如下表:屬性說(shuō)明Text該屬性用于設(shè)置或獲取與該控件關(guān)聯(lián)的文本Image指定標(biāo)簽要顯示的圖象方法說(shuō)明Hide隱藏控件,調(diào)用該方法時(shí),即使Visible屬性設(shè)置為True,控件也不可見(jiàn)Show相當(dāng)于將控件的Visible屬性設(shè)置為True并顯示控件事件說(shuō)明Click用戶單擊控件時(shí)將發(fā)生該事件設(shè)置“學(xué)生登錄窗口”的屬性后所產(chǎn)生的代碼如下所示:#regionWindows窗體設(shè)計(jì)器生成的代碼///<summary>///設(shè)計(jì)器支持所需的方法-不要使用代碼編輯器修改此方法的內(nèi)容。///</summary>privatevoidInitializeComponent(){this.lblName=newSystem.Windows.Forms.Label();this.lbPwd=newSystem.Windows.Forms.Label();////lblName//this.lblName.AutoSize=true;this.lblName.Location=newSystem.Drawing.Point(56,73);this.lblName.Name="lblName";this.lblName.Size=newSystem.Drawing.Size(41,12);this.lblName.TabIndex=0;this.lblName.Text="用戶名";////lbPwd//this.lbPwd.AutoSize=true;this.lbPwd.Location=newSystem.Drawing.Point(58,113);this.lbPwd.Name="lbPwd";this.lbPwd.Size=newSystem.Drawing.Size(29,12);this.lbPwd.TabIndex=1;this.lbPwd.Text="密碼"; ////frmLogin//this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.ClientSize=newSystem.Drawing.Size(292,273);this.Controls.Add(this.lbPwd);this.Controls.Add(this.lblName);this.Name="frmLogin";this.Text="登錄";this.Load+=newSystem.EventHandler(this.frmLogin_Load);this.ResumeLayout(false);this.PerformLayout();}#endregionprivateSystem.Windows.Forms.LabellblName;privateSystem.Windows.Forms.LabellbPwd;這些代碼反映了窗體設(shè)計(jì)器中窗體和控件的屬性。 與Lable控件不同的是,超鏈接標(biāo)簽(LinkLable)除了具有Lable控件所有的屬性、方法和事件外,該控件還可以在Windows應(yīng)用程序中添加Web樣式的超鏈接。下表列出了LinkLable部分屬性和事件。屬性說(shuō)明LinkBehavior指定鏈接顯示的行為,AlwaysUnderLine:始終顯示帶下劃線的文本,HoverUnderLine:鼠標(biāo)懸停在鏈接文本上時(shí)顯示下劃線,NeverUnderLine:從不帶下劃線,SystemDefault:系統(tǒng)默認(rèn)值。LinkArea指定文本顯示鏈接的部分LinkColor鏈接的顏色LinkVisited設(shè)置為True時(shí),單擊則會(huì)顯示另外一種顏色VisitedLinkColor設(shè)置訪問(wèn)過(guò)的鏈接顯示的顏色3.2文本框控件(TextBox)文本框(TextBox)的作用是實(shí)現(xiàn)程序與用戶的交互,獲取用戶輸入的信息或者向用戶顯示文本。文本框控件的主要屬性和事件如下表所示。 TextBox提供了三種樣式的輸入:?jiǎn)涡?、多行和密碼。輸入內(nèi)容比較多時(shí),設(shè)置Multiline屬性為True,可以調(diào)整TextBox寬度,實(shí)現(xiàn)多行輸入。如果文本框的內(nèi)容比較保密,設(shè)置PasswordChar屬性為“*”,輸入的內(nèi)容就可以“*”顯示。3.3按鈕控件(Button)按鈕(Button)控件幾乎存在于所有的Windows對(duì)話框中,是Windows應(yīng)用程序中最常用的控件之一。按鈕控件允許用戶通過(guò)單擊來(lái)執(zhí)行操作。按鈕最重要的事件,也是最常用的事件就是Click。當(dāng)用戶單擊按鈕時(shí),都會(huì)調(diào)研Click事件。按鈕的主要屬性和事件如下表:了解了按鈕的屬性和事件后,下面繼續(xù)設(shè)計(jì)登錄窗體。從工具箱拖放兩個(gè)按鈕到窗體,設(shè)置按鈕屬性。至此,登錄窗口已經(jīng)設(shè)計(jì)完畢,添加代碼完成用戶登錄功能。示例代碼如下:privatevoidbtnlogin_Click(objectsender,EventArgse){if((this.txtName.Text=="小飛俠")&&(this.txtPwd.Text=="1234")){MessageBox.Show("登錄成功!");}else{MessageBox.Show("用戶名或密碼錯(cuò)誤");}//清空文本框this.txtName.Text="";this.txtPwd.Text="";} 登錄按鈕事件中的代碼實(shí)現(xiàn)的功能是,如果用戶在txtName文本框中輸入正確的用戶名”小飛俠”,同時(shí)在txtPWD文本框中輸入密碼“1234”,單擊“登錄”按鈕,窗體中顯示登錄成功。否則窗體中顯示“用戶名和密碼錯(cuò)誤”。不管是否登錄成功,都要將文本框中輸入的內(nèi)容全部清空。登錄和登錄后窗口如下圖所示。3.4分組框控件(GroupBox)分組框(GroupBox)是對(duì)控件進(jìn)行分組的控件,可以設(shè)置每個(gè)組的標(biāo)題。分組框控件屬于容器控件,一般不對(duì)該控件編碼。Windows窗體使用GroupBox控件對(duì)控件分組的原因有三個(gè):對(duì)相關(guān)窗體元素進(jìn)行可視化分組以構(gòu)造一個(gè)清晰的用戶界面。創(chuàng)建編程分組(例如,單選按鈕分組)。設(shè)計(jì)時(shí)將多個(gè)控件作為一個(gè)單元移動(dòng)。分組框常用的屬性只有Text,使用該屬性修改分組框中的標(biāo)題。使用分組框創(chuàng)建一組控件的步驟如下:1、在窗體上繪制GroupBox控件。2、向分組框添加其他控件,在分組框內(nèi)繪制各個(gè)控件。如果要將現(xiàn)有控件放到分組框中,可以選定所有這些控件,將它們剪切到剪貼板,選擇GroupBox控件,再將它們粘貼到分組框中。也可以將它們拖到分組框中。3、將分組框的Text屬性設(shè)置為適當(dāng)標(biāo)題。3.5列表框(ListBox)列表框(ListBox)用來(lái)顯示一組相關(guān)聯(lián)的數(shù)據(jù),用戶可以從中選擇一個(gè)或多個(gè)選項(xiàng)。ListBox中的數(shù)據(jù)可以在設(shè)計(jì)時(shí)填充,也可以在程序運(yùn)行時(shí)填充。列表框(ListBox)中的每個(gè)元素稱為“項(xiàng)”。列表框控件的常用屬性、方法和事件如下表所示.屬性說(shuō)明Items所有項(xiàng)SelectionMode選擇模式SelectedIndex選中的索引號(hào),從0開(kāi)始Text當(dāng)前選中項(xiàng)的文本SelectedItem選中的項(xiàng)SelectedItems所有被選中的項(xiàng)方法說(shuō)明ClearSelected清除選中的選項(xiàng)事件說(shuō)明SelectedIndexChanged選中時(shí)觸發(fā)通過(guò)視圖方式添加ListBox中的項(xiàng)的步驟如下:?jiǎn)螕鬖istBox右上角的黑色三角箭頭,打開(kāi)任務(wù)列表。如下圖單擊“編輯項(xiàng)”連接按鈕,打開(kāi)“字符串集合編輯器”窗口。在集合編輯器中添加數(shù)據(jù)。ListBox的數(shù)據(jù)即可以在視圖中添加,也可以在程序中用代碼添加。下面的窗體加載的事件中為列表框lstDepart添加幾個(gè)選擇項(xiàng),代碼如下:PrivatevoidForm1_load(objectsender,EventArgse) { This.lstDepart.items.Add(“信息技術(shù)系”); This.lstDepart.items.Add(“電子工程系”); This.lstDepart.items.Add(“數(shù)學(xué)系”); This.lstDepart.items.Add(“物理系”);}如果在程序運(yùn)行中移除某項(xiàng),可以通過(guò)調(diào)用Remove或者RemoveAt方法來(lái)實(shí)現(xiàn)。假如現(xiàn)在從lstDepart中移除“數(shù)學(xué)系”,代碼示例如下:this.LstDepart.items.Remove(“數(shù)學(xué)系”);//直接移除項(xiàng)或this.LstDepart.items.RemoveAt(2);//通過(guò)索引移除注意:列表框中項(xiàng)的添加、刪除、修改操作實(shí)際上是通過(guò)Items對(duì)象的屬性、方法來(lái)實(shí)現(xiàn)的。3.6組合框控件(ComboBox)Windows窗體中的ComboBox控件用于在下拉組合框中顯示數(shù)據(jù)。組合框控件結(jié)合了文本框和列表框控件的特點(diǎn),用戶可以在組合框內(nèi)輸入文本,也可在列表中選擇項(xiàng)目。組合框(ComboBox)控件幾乎支持列表框控件的所有屬性。組合框控件除了支持上面列表框控件的屬性和方法,還有部分常用的屬性和方法見(jiàn)表。屬性說(shuō)明DropDownStyleComboBox控件的樣式MaxDropDownItems下拉區(qū)顯示的最大項(xiàng)目數(shù)方法說(shuō)明Select在ComboBox控件上選定指定范圍的文本SelectAll選定該控件可編輯區(qū)域顯示的所有文本通過(guò)視圖方式添加ComboBox數(shù)據(jù)的方式和ListBox的基本相同。ComboBox控件也可在程序中添加數(shù)據(jù),添加數(shù)據(jù)的代碼如下:this.cboGrade.Items.Add(“S1”);ComboBox控件可以通過(guò)索引指定選擇項(xiàng),示例代碼中將索引為“1”的項(xiàng)設(shè)為選擇項(xiàng),代碼如下:this.cboGrade.SelectedIndex=1;【問(wèn)題:創(chuàng)建模擬字體,添加向?qū)indows窗體應(yīng)用程序,把示例表中的字體添加到用戶表中?!糠治觯涸搯?wèn)題需要一個(gè)窗口,用于顯示示例表中字體和用戶表字體。使用組合框,用戶可以從中西文字體中選擇一個(gè)表。列表框用來(lái)顯示選定表的字體名稱列表。要添加字體,用戶要在列表框中選擇一個(gè)字體,單擊“添加”按鈕,將其添加到用戶列表框中。單擊“移除”按鈕,可將不需要的字體移除,也可全部添加,全部移除。實(shí)現(xiàn)步驟如下:1、新建項(xiàng)目,在窗體中添加控件??丶膶傩栽O(shè)置如下:2、在組合框控件中添加“中文”、“西文”兩項(xiàng)。3、通過(guò)選擇組合框中的不同的項(xiàng),相應(yīng)的“示例字體”顯示在列表框中,實(shí)現(xiàn)此功能的方法如下:privatevoidcboLanguage_SelectedIndexChanged(objectsender,EventArgse){//初始化兩個(gè)列表框,清空this.lstSampleFont.Items.Clear();this.lstNewFont.Items.Clear();//如果組合框選擇中文,將中文字體信息添加到列表框if(String.Compare(this.cboLanguage.SelectedItem.ToString(),"中文")==0){ string[]custFields={"宋體","楷體","隸書","黑體"};for(intcount=0;count<custFields.Length;count++){this.lstSampleFont.Items.Add(custFields[count]);}}//如果組合框選擇西文,將西文字體信息添加到列表框if(String.Compare(this.cboLanguage.SelectedItem.ToString(),"西文")==0){ string[]custFields={"TimesNewRoman","Arial","ArialBlack"};for(intcount=0;count<custFields.Length;count++){ this.lstSampleFont.Items.Add(custFields[count]);} }}上面代碼首先清除列表框中的所有元素,然后通過(guò)調(diào)用String.Compare()方法來(lái)判斷cboLanguage選擇的項(xiàng),如果是“中文”,第7行的if語(yǔ)句將返回結(jié)果true,則聲明字符串?dāng)?shù)組以存儲(chǔ)數(shù)組中的值。For循環(huán)用于將數(shù)組的值逐個(gè)添加到lstSampleFont列表框中。如果是“西文”,執(zhí)行第18~22行代碼,用法和上面的相同。4、選擇lstSampleFont列表框中的字段,單擊“>”按鈕,將字段添加到lstNewFont列表框中,單擊“》”按鈕,將列表框lstSampleFont中的字段全部添加到lstNewFond列表框中。雙擊“btnAdd”和”btnAddAll”按鈕,可分別定位到該按鈕的Click事件中,對(duì)此事件編寫代碼實(shí)現(xiàn)上述功能。事件代碼如下:privatevoidbtnAddAll_Click(objectsender,EventArgse){//通過(guò)項(xiàng)索引添加項(xiàng)for(intcount=0;count<this.lstSampleFont.Items.Count;count++){this.lstNewFont.Items.Add(this.lstSampleFont.Items[count]); }}privatevoidbtnAdd_Click(objectsender,EventArgse){//通過(guò)選定項(xiàng)的索引添加項(xiàng)for(intcount=0;count<this.lstSampleFont.SelectedItems.Count;count++){this.lstNewFont.Items.Add(this.lstSampleFont.SelectedItems[count]);}}上面代碼使用for循環(huán)將lstSampleFont列表框中的項(xiàng)逐個(gè)添加到lstNewFont列表框中。btnAdd_Click事件中將選定的項(xiàng)添加到lstNewFont列表框中,由于不是全部元素,所以使用“SelectedItems”的“Count”屬性來(lái)確定選擇項(xiàng)數(shù),然后通過(guò)“SelectedItems[count]”,即選擇項(xiàng)的索引添加項(xiàng)。而btnAddAll_Click事件是將全部元素添加,使用“Items”的“Count”屬性,而不是“SelectedItems”,一定要注意其中的差別。5、單擊“》”按鈕,移除列表框lstNewFont中的所有項(xiàng),單擊“>”按鈕,移除該列表框中選定的項(xiàng)。同樣,所有的處理代碼都要在按鈕的Click事件中編寫,示例代碼如下:privatevoidbtnRemove_Click(objectsender,EventArgse){//移除選定的項(xiàng)this.lstNewFont.Items.Remove(this.lstNewFont.SelectedItem);}privatevoidbtnRemoveAll_Click(objectsender,EventArgse){this.lstNewFont.Items.Clear();//清除所有元素} 6、單擊“退出”按鈕,退出應(yīng)用程序。在btnExit按鈕的Click事件中編寫一下代碼。privatevoidbtnExit_Click(objectsender,EventArgse){Application.Exit();} 7、選擇“生成”—>”生成解決方案”菜單,編譯程序,然后按F5鍵運(yùn)行。3.7單選按鈕控件(RadioButton)和復(fù)選框控件(CheckBox)RadioButton控件和CheckBox控件用于提供對(duì)多個(gè)選項(xiàng)的選擇功能,前者只能在一組中選擇一個(gè),叫做單選,后者既可以單選,也可以多選。RadioButton控件如圖所示CheckBox控件如圖所示。單選控件(RadioButton)顯示為一個(gè)標(biāo)簽,左邊是一個(gè)原點(diǎn),該點(diǎn)可以是選中或未選中。此控件常以組的形式出現(xiàn),只有在一組中的控件才能夠?qū)崿F(xiàn)單選,也就是一組中只能選擇一個(gè)。可以通過(guò)分組框(GroupBox)控件實(shí)現(xiàn)分組,然后在每一組中進(jìn)行選擇。單選按鈕的主要屬性和事件屬性說(shuō)明Checked指示單選按鈕是否已選中Text單選按鈕顯示的文本AutoCheck單選按鈕在選中時(shí)自動(dòng)改變狀態(tài),默認(rèn)為True事件說(shuō)明Click單擊控件時(shí)發(fā)生CheckedChanged當(dāng)Checked屬性值更改時(shí)出發(fā) 使用復(fù)選框控件可以實(shí)現(xiàn)多個(gè)選項(xiàng)同時(shí)選擇,其主要屬性和事件與RadioButton控件相同。3.8日期控件(DateTimePicker)日期控件(DateTimePicker)用來(lái)控制用戶的輸入日期,使用該控件可以使用戶通過(guò)選擇的方式填寫日期,避免輸入日期格式判斷。Windows窗體工具箱中的日期控件。DateTimePicker常用的屬性和事件見(jiàn)下表。 將日期控件添加到窗體中,類似于組合框,只是在框中默認(rèn)顯示系統(tǒng)當(dāng)前日期。在運(yùn)行時(shí)可以使用鼠標(biāo)選擇日期,將選擇的日期顯示在選定的下拉列表框中。將日期控件的ShowUpDown屬性值設(shè)為false時(shí),運(yùn)行效果如下圖:3.9選項(xiàng)卡控件(TabControl)選項(xiàng)卡控件(TabControl)在Windows應(yīng)用程序中使用的非常多,常用的很多軟件中都使用了選項(xiàng)卡控件,如下圖中所示的段落設(shè)置,就是典型的選項(xiàng)卡應(yīng)用。選項(xiàng)卡控件(TabControl)是一個(gè)容器控件,由多個(gè)TabPage組成,每個(gè)選項(xiàng)卡中可以包含圖片和其它控件。Windows窗體工具箱中的選項(xiàng)卡控件,添加到窗體上的效果如圖:TabControl控件中的選項(xiàng)卡可以在設(shè)計(jì)時(shí)添加,也可在程序運(yùn)行時(shí)添加。設(shè)計(jì)時(shí)添加的方法如下:?jiǎn)螕鬞abControl控件右上角的黑色三角,打開(kāi)任務(wù)列表,單擊“添加選項(xiàng)卡”選項(xiàng),可在窗體中添加選項(xiàng)卡。單擊“移除選項(xiàng)卡”選項(xiàng),可刪除選項(xiàng)卡。修改已添加選項(xiàng)卡的“Text”屬性值,在選項(xiàng)卡中添加標(biāo)簽、按鈕、圖片等Windows窗體控件。TabControl控件常用的屬性和事件屬性說(shuō)明Appearance選項(xiàng)卡標(biāo)簽的顯示樣式MultiLine指定是否顯示多行選項(xiàng)卡SelectedIndex當(dāng)前所選選項(xiàng)卡頁(yè)的索引值,默認(rèn)值為-1SelectedTab當(dāng)前選定的選項(xiàng)卡頁(yè),如果未選定則為Null引用ShowToolTips指定在鼠標(biāo)移到選項(xiàng)卡時(shí),是否顯示該選項(xiàng)卡的工具提示TabPages選項(xiàng)卡集合,可添加修改選項(xiàng)卡TabCount檢索選項(xiàng)卡控件中的選項(xiàng)卡數(shù)目事件說(shuō)明SelectedIndexChanged切換選項(xiàng)卡時(shí)觸發(fā)該事件3.10圖片框控件(PictureBox)Windows窗體PictureBox控件用于顯示位圖、GIF、JPEG、圖元文件或圖標(biāo)格式的圖形。圖片框控件的屬性和事件見(jiàn)表。在設(shè)計(jì)窗體中添加圖片的步驟如下:將圖片框控件拖放到窗體上,調(diào)整合適大小。單擊圖片框控件右上角的黑色三角,打開(kāi)任務(wù)列表,單擊“選擇圖像”選項(xiàng),打開(kāi)選擇資源選項(xiàng)卡,如圖:?jiǎn)螕簟皩?dǎo)入”按鈕,打開(kāi)Windows資源管理器,查找合適的圖片,在右邊的預(yù)覽圖框中顯示。單擊“確定”按鈕添加。在縮放模式中可以選擇圖片在圖片框中的顯示模式。3.11進(jìn)度條控件(ProgressBar)在Windows中復(fù)制、移動(dòng)、刪除文件時(shí)常會(huì)有一個(gè)窗口顯示操作狀態(tài),用于顯示任務(wù)的進(jìn)度,如下圖所示。Windows窗體工具箱中提供了進(jìn)度條(ProgressBar)控件,用來(lái)實(shí)現(xiàn)上面的功能。ProgressBar用來(lái)顯示程序的執(zhí)行進(jìn)度,讓用戶不至于等待的太枯燥。右圖為Windows窗體工具箱中的進(jìn)度條控件。使用進(jìn)度條控件必須設(shè)定三個(gè)值:進(jìn)度的開(kāi)始值、結(jié)束值和步長(zhǎng)。常用的屬性和事件如下表:屬性說(shuō)明Maximum進(jìn)度條控件的最大值,默認(rèn)值100Minimum進(jìn)度條控件的最小值Step步長(zhǎng)值,制定進(jìn)度條增加的速度Value表示進(jìn)度條中光標(biāo)的當(dāng)前位置,默認(rèn)值為0PerformStep按照Step屬性中指定的值移動(dòng)進(jìn)度條的當(dāng)前位置。下面代碼演示一個(gè)進(jìn)度條執(zhí)行過(guò)程,循環(huán)0~100的整數(shù),當(dāng)循環(huán)到10的倍數(shù)時(shí),進(jìn)度條增進(jìn)一步。privatevoidForm1_Load(objectsender,EventArgse){this.pgrLoad.Maximum=100;//設(shè)定起始值this.pgrLoad.Minimum=0;//設(shè)定結(jié)束值this.pgrLoad.Step=10;//設(shè)定步長(zhǎng)值for(inti=0;i<=100;i++){if(i%10==0)pgrLoad.PerformStep();} }3.12簡(jiǎn)單示例——注冊(cè)窗口的實(shí)現(xiàn)本實(shí)例完成注冊(cè)窗口的功能。實(shí)現(xiàn)步驟如下:1、右擊解決方案解決方案資源管理器中的項(xiàng)目名稱“StudentManage”,單擊“添加”“添加Windows窗體”選項(xiàng),打開(kāi)“添加新項(xiàng)”窗口,在“添加新項(xiàng)”窗口中選擇“Windows”窗體,修改名稱為“frmRegister.cs”,單擊“確定”按鈕。2、設(shè)計(jì)“注冊(cè)”窗體,設(shè)置控件屬性。3、在“保存”(btnSave)按鈕的Click事件中編寫代碼。privatevoidbtnSave_Click(objectsender,EventArgse){this.lstInfo.Items.Add(this.txtName.Text);//添加用戶名this.lstInfo.Items.Add(this.txtPwd.Text);//添加密碼this.lstInfo.Items.Add(this.txtRealName.Text);//添加姓名this.lstInfo.Items.Add(this.txtAddress.Text);//添加住址this.lstInfo.Items.Add(this.dateTimePicker1.Value);//添加選擇的時(shí)間//判斷單選按鈕哪個(gè)被選中,將值添加到列表框中stringgender;if(this.radFemale.Checked)gender=this.radFemale.Text;elsegender=this.radMale.Text;this.lstInfo.Items.Add(gender);//將組合框中的選定值添加到列表框this.lstInfo.Items.Add(this.cboGrade.SelectedItem);//將多選框選中的項(xiàng)添加到列表框stringstr=null;if(this.chkWeb.Checked)str+=this.chkWeb.Text;if(this.chkRead.Checked)str+=this.chkRead.Text;if(this.chkPlay.Checked)str+=this.chkPlay.Text;if(this.chkSport.Checked)str+=this.chkSport.Text;this.lstInfo.Items.Add(str);}4、單擊“取消”按鈕,退出應(yīng)用程序。在btnCancel按鈕的Click事件中編寫代碼。privatevoidbtnCancel_Click(objectsender,EventArgse){Application.Exit();}5、實(shí)現(xiàn)窗體之間的跳轉(zhuǎn)。程序首先運(yùn)行的是“登錄”窗口,如果是新用戶就需要注冊(cè),再登錄窗口,單擊“注冊(cè)”按鈕,打開(kāi)“學(xué)生注冊(cè)窗體”,要實(shí)現(xiàn)這個(gè)功能,就需要實(shí)現(xiàn)窗體之間的跳轉(zhuǎn)。實(shí)現(xiàn)窗體之間的跳轉(zhuǎn)分為兩步,首先創(chuàng)建窗體對(duì)象,然后顯示窗體。語(yǔ)法如下:被調(diào)用的窗體類對(duì)象名=new被調(diào)用的窗體類();對(duì)象名.show();本例中,首先打開(kāi)窗體“frmLogin”,雙擊“注冊(cè)”按鈕,在“注冊(cè)”按鈕的Click事件中編寫代碼:privatevoidbtnReg_Click(objectsender,EventArgse){frmRegisterobjfrm=newfrmRegister();//創(chuàng)建窗體對(duì)象objfrm.Show();//顯示窗體}4消息框(MessageBox對(duì)象)的使用在Windows操作系統(tǒng)中,當(dāng)刪除文件時(shí),常常會(huì)彈出如下圖所示的消息,詢問(wèn)是否確認(rèn)操作。MessageBox是一個(gè)預(yù)定義對(duì)話框,用于向用戶顯示與應(yīng)用程序相關(guān)的信息。消息框也用于請(qǐng)求來(lái)自用戶的信息。4.1C#中的消息框窗口消息框是一個(gè)MessageBox對(duì)象,要?jiǎng)?chuàng)建消息框,需要調(diào)用MessageBox的Show()方法來(lái)實(shí)現(xiàn),而Show()方法有很多重載方式,常用的有4種類型。最簡(jiǎn)單的消息框MessageBox.Show(“消息內(nèi)容”);帶標(biāo)題的消息框MessageBox.Show(“消息內(nèi)容”,”消息框標(biāo)題”);帶標(biāo)題、按鈕的消息框MessageBox.Show(“消息內(nèi)容”,”消息框標(biāo)題”,消息框按鈕);帶標(biāo)題、按鈕、圖標(biāo)的消息框MessageBox,Show(“消息內(nèi)容”,”消息框標(biāo)題”,消息框按鈕,消息框圖標(biāo));現(xiàn)在進(jìn)一步完善注冊(cè)窗口的示例程序。單擊“保存”按鈕,首先檢查文本框中的“用戶名”和“密碼”是否為空,如果為空,則給出提示。此提示信息采用信息框完成,示例代碼如下所示:if(this.txtName.Text=="")//判斷“用戶名”文本框中的字符串是否為空{(diào)MessageBox.Show("請(qǐng)輸入用戶名");}if(this.txtPwd.Text=="")//判斷“密碼”文本框中的字符串是否為空{(diào)MessageBox.Show("請(qǐng)輸入密碼","輸入提示");}if(this.txtRealName.Text=="")//判斷“姓名”文本框中的字符串是否為空{(diào)MessageBox.Show("請(qǐng)輸入真實(shí)姓名","輸入提示",MessageBoxButtons.OKCancel);}if(this.txtAddress.Text=="")//判斷“地址”文本框中的字符串是否為空{(diào)MessageBox.Show("請(qǐng)輸入地址","輸入提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information);} 上面代碼中,分別使用了4中MessageBox.Show()方法,由于每種方法參數(shù)不同,消息框的顯示也不相同。如果上面判斷的4個(gè)文本框均為空,就會(huì)出現(xiàn)如下消息框: 分析這幾個(gè)消息框的區(qū)別,第一個(gè)消息框只有一條消息和一個(gè)“確定”按鈕。第二個(gè)消息框標(biāo)題上顯示了文字。第三個(gè)消息框增加了參數(shù)MessageBoxButtons.OKCancel,作用是在消息框中顯示了“確定”和“取消”兩個(gè)按鈕,MessageBoxButtons內(nèi)定義了多種按鈕,可以使用點(diǎn)運(yùn)算符選擇需要的按鈕。第四個(gè)消息框增加了一個(gè)參數(shù)MessageBoxIcon.Information,他的作用是設(shè)置消息框顯示的圖標(biāo)。MessageBoxIcon中有很多常用的圖標(biāo),可根據(jù)需要使用點(diǎn)運(yùn)算符選擇。4.2消息框的返回值上面圖3和圖4中都有兩個(gè)按鈕,如何才能知道用戶單擊了哪一個(gè)按鈕呢?事實(shí)上每個(gè)消息框都有一個(gè)返回值,是DialogResult類型。系統(tǒng)為此DialogResult提供了枚舉值,下表列出了DialogResult枚舉值。枚舉成員的訪問(wèn)方法為:枚舉名.枚舉成員,即通過(guò)“點(diǎn)”運(yùn)算符來(lái)訪問(wèn),如果用戶單擊了“確定”按鈕,返回值為“DialogueResult.OK”,單擊了“取消”按鈕,返回值為“DialogueResult.Cancel”,現(xiàn)在完善登錄窗口代碼,如果單擊“登錄”按鈕,檢測(cè)“用戶名”和“密碼”文本框是否為空,如果為空則給出提示信息,獲取消息框的返回值。修改后代碼如下:privatevoidbtnlogin_Click(objectsender,EventArgse){if((this.txtName.Text=="")||(this.txtPwd.Text==""))//判斷“用戶名”文本框中的字符串是否為空{(diào)DialogResultresult;result=MessageBox.Show("請(qǐng)輸入用戶名和密碼","輸入提示",MessageBoxButtons.YesNoCancel);if(result==DialogResult.OK){MessageBox.Show("您選擇了確認(rèn)按鈕");}if(result==DialogResult.Cancel){MessageBox.Show("您選擇了取消按鈕");}}if((this.txtName.Text=="小飛俠")&&(this.txtPwd.Text=="1234")){MessageBox.Show("登錄成功!");}else{MessageBox.Show("用戶名或密碼錯(cuò)誤");}//清空文本框this.txtName.Text="";this.txtPwd.Text="";} 運(yùn)行項(xiàng)目,沒(méi)有輸入用戶名或者密碼時(shí),會(huì)出現(xiàn)如圖所示。 單擊此消息框的“取消”按鈕,會(huì)出現(xiàn)如下信息,表明程序檢測(cè)到了消息框的返回值。5Windows窗體中的高級(jí)控件前面學(xué)習(xí)了Windows窗體工具箱中的常用控件,使用這些控件,可以快捷方便地創(chuàng)建界面友好的Windows應(yīng)用程序。現(xiàn)繼續(xù)學(xué)習(xí)Windows窗體中的比較復(fù)雜的控件,使我們的程序界面更加友好,功能更加豐富。5.1列表視圖控件(ListView)Windows操作系統(tǒng)中的資源管理器,大家應(yīng)該很熟悉,如下圖所示。資源管理器的左邊有一個(gè)可折疊的樹形視圖顯示目錄結(jié)構(gòu),TreeView控件可以生成這樹形視圖,右邊的窗口顯示當(dāng)前文件夾的內(nèi)容,此窗口有多種視圖方式顯示,使用ListView控件可以實(shí)現(xiàn)。Windows窗體工具箱中的ListView控件如下圖所示。 ListView控件用來(lái)顯示列表,其樣式與Windows資源管理器的文件列表相似,下表列出了ListView控件的屬性和事件。屬性說(shuō)明Activation指定用戶在列表視圖中激活選項(xiàng)的方式,包括Standard、OneClick、TwoClickAlignment指定列表視圖中選項(xiàng)對(duì)齊的方式AutoArrange如果此屬性為True,選項(xiàng)會(huì)自動(dòng)根據(jù)Alignment屬性排序Items列表視圖中的選項(xiàng)集合Sorting控件中項(xiàng)的排列循序,包括Accending:升序,Descending:降序,None:不排序MulitSelect指定是否可以同時(shí)選擇多個(gè)項(xiàng)TopItem列表視圖中的第一個(gè)可見(jiàn)項(xiàng)SelectedItems選定的項(xiàng)FocuseItem獲取控件中當(dāng)前有焦點(diǎn)的項(xiàng),如果都沒(méi)有焦點(diǎn),返回Null引用View指定顯示方式,包括LargeIcon(大圖標(biāo))、SmallIcon(小圖標(biāo)),Details(詳細(xì)信息)和List(列表)。默認(rèn)值LargeIcon方法說(shuō)明Clear()移除所有項(xiàng)Sort()對(duì)空件的項(xiàng)進(jìn)行排序。通常使用Sorting屬性,根據(jù)項(xiàng)文本對(duì)各項(xiàng)信息排序事件說(shuō)明ColumnClick單擊一個(gè)列時(shí)引發(fā)該事件Click單擊控件中的項(xiàng)時(shí)發(fā)生ItemActive激活某項(xiàng)時(shí)發(fā)生ListView控件中的Items屬性表示包含控件中的所有項(xiàng)的集合,使用Items屬性的Add()、Clear()、Remove()、RemoveAt()方法可以添加或移除列表項(xiàng)。示例代碼如下:This.lvwList.Items.Add(“C#”);This.lvwList.Items.Add(“VisualStudio”);ListViewItem類專門用于表示ListView控件中的項(xiàng),定義了與ListView控件中顯示的項(xiàng)相關(guān)聯(lián)的外觀、行為和數(shù)據(jù)。該類的SubItems屬性獲取包含該項(xiàng)的所有子項(xiàng)的集合,ListView處于Details或Title模式下,這些子項(xiàng)會(huì)顯示出來(lái)。自選項(xiàng)和主選項(xiàng)的區(qū)別是子選項(xiàng)不能顯示圖標(biāo)。通過(guò)Items集會(huì)把ListViewItems添加到ListView中,通過(guò)ListViewItems中的SubItems集合把ListViewSubItems添加到ListViewItems中,示例代碼如下ListViewItemlst=newListViewItem();lst.SubItems[0].Text=”C#入門”;lst.SubItems.Add(“C#進(jìn)級(jí)”);lst.SubItems.Add(“VS2008”);this.lvwFile.Items.Add(lst);ListView控件的Columns屬性表示控件中出現(xiàn)的所有列標(biāo)題的集合,列標(biāo)題是ListView控件中的標(biāo)題文本。要使列表視圖顯示列標(biāo)題,需要把類ColumnHeader的實(shí)例添加到ListView控件的Column集合中。ListView控件處于Detail模式下,ColumnHeader為要顯示的列提供一個(gè)標(biāo)題。添加列標(biāo)題的示例代碼如下:System.Windows.Forms.ColumnHeaderheader=newColumnHeader();header.Text="標(biāo)題";//標(biāo)題文本header.TextAlign=HorizontalAlignment.Center;//標(biāo)題對(duì)齊方式header.Width=100;//標(biāo)題寬度this.lvwList.Columna.Add(header);//將標(biāo)題添加到ListView控件中//代碼 下面通過(guò)一個(gè)例子學(xué)習(xí)ListView控件的用法。 【實(shí)例:在ListView控件中顯示“C:\Windows”的文件和文件夾,并且根據(jù)視圖選擇的不同模式,可以顯示不同的效果。窗體界面設(shè)計(jì)如下圖】該程序?qū)崿F(xiàn)的步驟如下:1、創(chuàng)建一個(gè)Windows應(yīng)用程序,名稱為“Example_ListViewTest”2、創(chuàng)建窗體界面。在窗體上添加一個(gè)標(biāo)簽、一個(gè)列表視圖、一個(gè)分組框、一個(gè)按鈕。在分組框中添加5個(gè)單選按鈕,Text屬性設(shè)置為列表視圖的5種視圖模式。3、在窗體上添加兩個(gè)圖像列表,命名為imageListSmall和imageListLarge。調(diào)整imageListLarge的大小。4、單擊imageListSmall右上角的黑色三角,打開(kāi)任務(wù)欄,單擊“選擇圖像”選項(xiàng),打開(kāi)“圖像集合編輯器”窗口,單擊添加按鈕,選擇要添加的圖像。5、設(shè)置單選按鈕“詳細(xì)信息”的“Checked”屬性的值為True。6、設(shè)置列表視圖控件的屬性。將ListView控件的SmallimageList屬性設(shè)為imageListSmall,LargeimageList屬性設(shè)置為imageListLarge。7、編寫代碼。編寫實(shí)現(xiàn)ListView控件中創(chuàng)建列表題的方法。privatevoidCreateColumnHeader(){System.Windows.Forms.ColumnHeaderheader;//第一列標(biāo)題header=newColumnHeader();header.Text="名稱";this.lvwFile.Columns.Add(header);//第二列標(biāo)題header=newColumnHeader();header.Text="大小";this.lvwFile.Columns.Add(header);//第三列標(biāo)題header=newColumnHeader();header.Text="修改日期";this.lvwFile.Columns.Add(header);}8、編寫在ListView控件中現(xiàn)實(shí)文本和文件夾。publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){CreateColumnHeader();//調(diào)用創(chuàng)建標(biāo)題的方法try{ListViewItemlstItem;//聲明ListViewItem對(duì)象ListViewItem.ListViewSubItemlstSubItem;//聲明lstSubItem對(duì)象DirectoryInfodir=newDirectoryInfo("c:\\windows");DirectoryInfo[]dirs=dir.GetDirectories();FileInfo[]files=dir.GetFiles();this.lblCurrentPath.Text="c:\\WINDOWS";this.lvwFile.BeginUpdate();foreach(DirectoryInfodiindirs){lstItem=newListViewItem();lstItem.Text=di.Name;lstItem.Tag=di.FullName;lstItem.ImageIndex=0;lstSubItem=newListViewItem.ListViewSubItem();lstSubItem.Text="";lstItem.SubItems.Add(lstSubItem);lstSubItem=newListViewItem.ListViewSubItem();lstSubItem.Text=di.LastAccessTime.ToString();lstItem.SubItems.Add(lstSubItem);this.lvwFile.Items.Add(lstItem);}foreach(FileInfofiinfiles){lstItem=newListViewItem();lstItem.Text=fi.Name;lstItem.Tag=fi.FullName;lstItem.ImageIndex=1;lstSubItem=newListViewItem.ListViewSubItem();lstSubItem.Text=fi.Length.ToString();lstItem.SubItems.Add(lstSubItem);lstSubItem=newListViewItem.ListViewSubItem();lstSubItem.Text=fi.LastAccessTime.ToString();lstItem.SubItems.Add(lstSubItem);this.lvwFile.Items.Add(lstItem);}this.lvwFile.EndUpdate();}catch(Exceptionex){MessageBox.Show(ex.Message);}} 在第一個(gè)foreach塊中,調(diào)用了ListViewItem的BeginUpdate()方法,此方法通知列表視圖控件停止更新可見(jiàn)區(qū)域,直到調(diào)用EndUpdate()方法為止。在第二個(gè)foreach塊的最后調(diào)用了EndUpdate()方法,更新ListView視圖。9、修改列表視圖的查看類型,選擇每個(gè)單選按鈕,在每個(gè)單選按鈕的CheckedChanged事件中編寫代碼。 privatevoidradioButton2_CheckedChanged(objectsender,EventArgse){if(radDetail.Checked)this.lvwFile.View=View.Details;}privatevoidradList_CheckedChanged(objectsender,EventArgse){if(radList.Checked){this.lvwFile.View=View.List;}}privatevoidradLargeIcon_CheckedChanged(objectsender,EventArgse){if(radLargeIcon.Checked)this.lvwFile.View=View.LargeIcon;}privatevoidradSmallIcon_CheckedChanged(objectsender,EventArgse){if(radSmallIcon.Checked)this.lvwFile.View=View.SmallIcon;}privatevoidradTitle_CheckedChanged(objectsender,EventArgse){if(radTitle.Checked)this.lvwFile.View=View.Tile;} 執(zhí)行結(jié)果如下圖:5.2樹視圖控件(TreeView)TreeView控件和ListView控件有很多相似的地方,它們都為用戶提供便捷的文件導(dǎo)航功能。不同的是TreeView控件以樹視圖方式展示給用戶,而ListView控件以列表形式展現(xiàn)給用戶。Windows資源管理器左邊窗格所包含的目錄和文件就是以樹型視圖排列的,使用TreeView控件實(shí)現(xiàn)此功能。Windows窗體工具箱中的TreeView控件如圖11.51所示。TreeView控件稱為樹視圖控件,樹中每一個(gè)元素都稱為節(jié)點(diǎn),這些節(jié)點(diǎn)可以是磁盤驅(qū)動(dòng)器、文件夾等。下表列出了TreeView控件的屬性和事件 TreeView控件的Nodes屬性表示TreeView控件的樹節(jié)點(diǎn)集,樹節(jié)點(diǎn)集中的每個(gè)樹節(jié)點(diǎn)可以包括本身的樹節(jié)點(diǎn)集,可以使用Add()、Remove()、RemoveAt()方法添加、刪除節(jié)點(diǎn)。 下面介紹在視圖中添加節(jié)點(diǎn)的方法,步驟如下: 1、將TreeView控件添加到窗體上,命名為“TVW”,為前綴的控件名稱,這是命名規(guī)范。 2、單擊TreeView控件右上方的黑色三角,打開(kāi)TreeView控件任務(wù)欄,單擊編輯節(jié)點(diǎn)選項(xiàng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論