




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、網(wǎng)絡編程基礎網(wǎng)絡編程基礎教材:教材:C#程序設計教程程序設計教程任課教師:段趙磊任課教師:段趙磊上課時間上課時間:1、2、3、7、8、9、10、11、15、16、17周周周二第二大節(jié)周二第二大節(jié)1、3、7、8、9、10、11、15、16周周周四第五大節(jié)周四第五大節(jié) 單雙周都上單雙周都上電教樓電教樓404實驗時間:實驗時間:第第1、2、3、9、10、11、12、13、15、16周周周四中午周四中午12:10-13:50 網(wǎng)絡運維網(wǎng)絡運維13-1、2第第1、2、3、7、8、9、10、11、16、17周周周四第四大節(jié)周四第四大節(jié) 16:10-17:50 網(wǎng)絡工程網(wǎng)絡工程13-1實驗樓實驗樓302第第
2、1章章 C#代碼編寫基礎代碼編寫基礎5Ch1 C#代碼編寫基礎代碼編寫基礎1.1 C#語言和語言和VS2012開發(fā)環(huán)境開發(fā)環(huán)境1.2 C#項目的組織項目的組織1.3 控制臺應用程序控制臺應用程序1.4 Windows窗體應用程序窗體應用程序1.5 WPF和和Silverlight應用程序應用程序1.6 獨立應用程序和瀏覽器運行的應用程序獨立應用程序和瀏覽器運行的應用程序1.1 C#語言和語言和VS2012開發(fā)環(huán)境開發(fā)環(huán)境l1.1.1 C#語言和語言和.NET框架框架l1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境71.1.1 C#語言和語言和.NET框架框架lC#(讀作(讀作“C sharp”)是一
3、種完全面向對象的基)是一種完全面向對象的基于于.NET框架的高級程序設計語言??蚣艿母呒壋绦蛟O計語言。C#的開發(fā)背景的開發(fā)背景 C#是從是從C和和C+演變而來的,并且結合了演變而來的,并且結合了C/C+的強大功能、的強大功能、Java的面向對象特性和的面向對象特性和Visual Basic的易用性,從而成為一種簡單的的易用性,從而成為一種簡單的類型安全、面向對象的編程語言,也是類型安全、面向對象的編程語言,也是.NET公共語言運行環(huán)境的內(nèi)置語言。公共語言運行環(huán)境的內(nèi)置語言。C#代碼可以代碼可以從公共語言運行庫的服務中獲益。從公共語言運行庫的服務中獲益。 C#是唯一為是唯一為.NET Frame
4、work設計的語言,設計的語言,是用于是用于.NET開發(fā)的最好選擇。開發(fā)的最好選擇。C#語言的特點語言的特點C#語言的特點語言的特點.NET框架為框架為C#提供了一個強大的、易用的、邏輯提供了一個強大的、易用的、邏輯結構一致的程序設計環(huán)境。結構一致的程序設計環(huán)境。C#具有如下的特點:具有如下的特點:專門為快速編寫在專門為快速編寫在.NET框架上運行的各種應用程序而框架上運行的各種應用程序而設計。設計。語法簡潔語法簡潔精心的面向對象設計精心的面向對象設計與與Web的緊密結合的緊密結合可靠的安全性與錯誤處理可靠的安全性與錯誤處理可靠的版本控制技術可靠的版本控制技術靈活性和兼容性。靈活性和兼容性。1
5、.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架定義定義uMicrosoft.NETMicrosoft.NET框架是生成、運行框架是生成、運行.NET.NET應用程序和應用程序和Web ServiceWeb Service的組件庫。的組件庫。包含包含u公共語言運行庫公共語言運行庫u類庫類庫類庫為開發(fā)和運行類庫為開發(fā)和運行.NET.NET應用程序提供了各種支持應用程序提供了各種支持類庫是與公共語言運行庫緊密集成的可重用的類的集合類庫是與公共語言運行庫緊密集成的可重用的類的集合。1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架特點:一種
6、框架多種語言特點:一種框架多種語言u支持支持C#C#語言、語言、VB.NETVB.NET語言、語言、C+C+和和C+.NETC+.NET語言、語言、F#F#語言等高級語言語言等高級語言注意注意u用基于用基于.NET.NET框架開發(fā)的應用程序,不論使用的框架開發(fā)的應用程序,不論使用的是哪種高級語言,均必須在安裝了是哪種高級語言,均必須在安裝了.NET.NET框架的計框架的計算機上才能運行。這種架構與算機上才能運行。這種架構與JavaJava應用程序必須應用程序必須由由JavaJava虛擬機支持相似。虛擬機支持相似。什么是什么是.NET .NET框架(框架(.NET Framework) 是由微軟
7、開發(fā),是由微軟開發(fā),一個致力于快速應用開發(fā)、平臺無關性和網(wǎng)絡透明化一個致力于快速應用開發(fā)、平臺無關性和網(wǎng)絡透明化的軟件開發(fā)平臺。的軟件開發(fā)平臺。.NET包含許多有助于互聯(lián)網(wǎng)和內(nèi)部包含許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應用迅捷開發(fā)的技術。網(wǎng)應用迅捷開發(fā)的技術。.NET Framework可以創(chuàng)建可以創(chuàng)建Windows應用程序、應用程序、Web應用程序、應用程序、Web服務和其他服務和其他各種類型的應用程序。各種類型的應用程序。 .NET框架是一個多語言組件開發(fā)和執(zhí)行環(huán)境,它框架是一個多語言組件開發(fā)和執(zhí)行環(huán)境,它提供了一個跨語言的統(tǒng)一編程環(huán)境。提供了一個跨語言的統(tǒng)一編程環(huán)境。.NET框架的目的框架的目的是便
8、于開發(fā)人員更容易地建立是便于開發(fā)人員更容易地建立Web應用程序和應用程序和Web服服務,使得務,使得Internet上的各應用程序之間,可以使用上的各應用程序之間,可以使用Web服務進行溝通。服務進行溝通。 .NET平臺介紹平臺介紹 .NET平臺介紹平臺介紹1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架-公共語言運行庫公共語言運行庫公共語言運行庫公共語言運行庫u是是.NET.NET框架的基礎,為多種編程語言提供統(tǒng)一框架的基礎,為多種編程語言提供統(tǒng)一的運行環(huán)境。的運行環(huán)境。1.1.1 C#語言和語言和.NET框架框架lMicrosoft.NET框架框架-公共語言
9、運行庫公共語言運行庫中間語言中間語言ILu使用使用.NET.NET框架提供的編譯器可直接將源程序編譯為框架提供的編譯器可直接將源程序編譯為.EXE.EXE或者或者.DLL.DLL文件,此時編譯出來的程序代碼并不文件,此時編譯出來的程序代碼并不是是CPUCPU能直接執(zhí)行的機器代碼,而是一種中間語言能直接執(zhí)行的機器代碼,而是一種中間語言ILIL代碼代碼( Microsoft Intermediate ( Microsoft Intermediate Language,MSIL)Language,MSIL)u使用中間語言代碼的優(yōu)點使用中間語言代碼的優(yōu)點可以實現(xiàn)平臺無關性,即與特定的CPU無關;只要能
10、將某種語言編譯為IL代碼,就可以實現(xiàn)這些語言之間的交互操作。1.1.1 C#語言和語言和.NET框架框架l即時編譯即時編譯執(zhí)行時執(zhí)行時CLR會將需要的會將需要的IL代碼裝入內(nèi)存,通過代碼裝入內(nèi)存,通過JIT編譯器(編譯器(Just-In-Time)將其編譯成所用平臺的)將其編譯成所用平臺的CPU可直接執(zhí)行的可直接執(zhí)行的機器代碼。機器代碼。即時編譯并不是一次把整個應用程序全部編譯完,而是只即時編譯并不是一次把整個應用程序全部編譯完,而是只編譯它調用的那部分代碼所在的模塊。編譯它調用的那部分代碼所在的模塊。l為什么要采用即時編譯為什么要采用即時編譯JIT編譯器可以有效地提高系統(tǒng)的性能。編譯器可以有
11、效地提高系統(tǒng)的性能??煽衫矛F(xiàn)有利用現(xiàn)有CPU和和GPU硬件提供的功能即時生成優(yōu)化后的硬件提供的功能即時生成優(yōu)化后的可執(zhí)行代碼。可執(zhí)行代碼。1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境lVS2012開發(fā)環(huán)境開發(fā)環(huán)境1安裝安裝VS2012u速成版(速成版(Express EditionExpress Edition)-免費免費u專業(yè)版(專業(yè)版(Professional EditionProfessional Edition)u旗艦版(旗艦版(Ultimate EditionUltimate Edition)-本書調試用的本書調試用的環(huán)境環(huán)境2安裝安裝VS2012 SP33配置配置VS2012開發(fā)環(huán)境
12、的界面風格(可選)開發(fā)環(huán)境的界面風格(可選)u深色深色u淺色淺色1.1.2 VS2012開發(fā)環(huán)境開發(fā)環(huán)境1.2 C#項目的組織項目的組織l1.2.1 命名空間命名空間l1.2.2 using關鍵字關鍵字l1.2.3 Main方法方法l1.2.4 代碼注釋代碼注釋l1.2.5 通過斷點調試通過斷點調試C#程序程序l1.2.6 C#代碼編寫命名規(guī)范代碼編寫命名規(guī)范1.2 C#項目的組織項目的組織lC#源文件的擴展名為源文件的擴展名為.cs,如,如Welcome.cs。l一個一個C#源文件中一般只包含一個類源文件中一般只包含一個類【建議這樣做建議這樣做】,但也可以包含多個類,文件名和類名可以相同,但
13、也可以包含多個類,文件名和類名可以相同【建建議相同議相同】,也可以不同,也可以不同【包含多個類時一般不和類名包含多個類時一般不和類名相同相同】。l調試環(huán)境下調試環(huán)境下:項目編譯后生成的文件默認保存在項目項目編譯后生成的文件默認保存在項目的的binDebug文件夾下。文件夾下。1.2.1 命名空間命名空間l命名空間命名空間是對類的一種劃分,類似于目錄和文件的劃分形式是對類的一種劃分,類似于目錄和文件的劃分形式 。命令空間是一種邏輯劃分,而非物理上的存儲分類。命令空間是一種邏輯劃分,而非物理上的存儲分類。命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空間命名空
14、間命名空間命名空間命名空間命名空間類類類類類類1.2.1 命名空間命名空間l靜態(tài)方法調用靜態(tài)方法調用命名空間命名空間.命名空間命名空間.命名空間命名空間.類名類名.靜態(tài)方法名(參數(shù),靜態(tài)方法名(參數(shù),);u例如:例如:System.Console.WritleLineSystem.Console.WritleLine(”Hello World!”);Hello World!”);l實例方法調用實例方法調用實例化:實例化:u命名空間命名空間命名空間命名空間. .類名類名 = new = new 類名稱(參數(shù)類名稱(參數(shù),) 方法調用:方法調用:u實例名實例名. .方法名(參數(shù)方法名(參數(shù))例如:
15、例如:uSystem.Text.StringBuilder b = System.Text.StringBuilder b = newnew StringBuilder(); StringBuilder(); ub.Append(“abcd”);b.Append(“abcd”); 1.2.2 using關鍵字關鍵字lusing關鍵字關鍵字指定引用的命名空間,例如:指定引用的命名空間,例如:uusing System.Windows.Forms;using System.Windows.Forms;簡化命名空間的層次表達形式,例如簡化命名空間的層次表達形式,例如: uusing WinForm=
16、System.Windows.Form;using WinForm=System.Windows.Form;作為語句,定義一個范圍。作為語句,定義一個范圍。u程序執(zhí)行到程序執(zhí)行到“”時,就會自動釋放時,就會自動釋放usingusing后小括號中創(chuàng)建的對象后小括號中創(chuàng)建的對象u例如:例如:using(TextWriter w= File.CreateText(test.txt) w.WriteLine(Line one); w.WriteLine(Line two); w.WriteLine(Line three); 1.2.3 Main方法方法lMain方法要求方法要求應用程序入口方法名規(guī)定為
17、應用程序入口方法名規(guī)定為Main。必須聲明為必須聲明為public static返回值只能是返回值只能是void或者或者int。可以放在任何一個類中??梢苑旁谌魏我粋€類中。1.2.4 代碼注釋代碼注釋l常規(guī)注釋方式常規(guī)注釋方式單行注釋:以單行注釋:以“/”符號開始,任何位于符號開始,任何位于“/”符號后的本符號后的本行文字都視為注釋行文字都視為注釋塊注釋:以塊注釋:以“/*”開始,開始,“*/”結束。任何介于這對符號之結束。任何介于這對符號之間的文字塊都視為注釋。間的文字塊都視為注釋。lXML注釋方式注釋方式“/”符號是一種符號是一種XML注釋方式注釋方式在用戶自定義的類型如類、接口、枚舉等或
18、者在其成員上在用戶自定義的類型如類、接口、枚舉等或者在其成員上方,或者命名空間的聲明上方連續(xù)鍵入方,或者命名空間的聲明上方連續(xù)鍵入3個斜杠字符個斜杠字符可以在鍵入方法名和參數(shù)的過程中看到用可以在鍵入方法名和參數(shù)的過程中看到用XML注釋的智能注釋的智能提示。提示。1.2.5 通過斷點調試通過斷點調試C#程序程序l斷點調試是編程人員必備素質!斷點調試是編程人員必備素質!利用斷點查找程序的邏輯錯誤,是常用的手段之一利用斷點查找程序的邏輯錯誤,是常用的手段之一1設置和取消斷點設置和取消斷點u單擊某代碼行左邊的灰色區(qū)域。單擊設置,再單擊某代碼行左邊的灰色區(qū)域。單擊設置,再次單擊取消設置。次單擊取消設置。
19、u鼠標右擊某代碼行,選擇【斷點】鼠標右擊某代碼行,選擇【斷點】【插入斷【插入斷點】或者【刪除斷點】。點】或者【刪除斷點】。 u單擊某代碼行,直接按單擊某代碼行,直接按鍵進行設置或取消鍵進行設置或取消設置。設置。2利用斷點調試程序利用斷點調試程序u按按執(zhí)行到斷點,觀察后再按執(zhí)行到斷點,觀察后再按執(zhí)行到下執(zhí)行到下一斷點一斷點+鍵終止調試。鍵終止調試。 1.2.6 C#代碼編寫命名規(guī)范代碼編寫命名規(guī)范l類名、方法名和屬性名全部使用類名、方法名和屬性名全部使用Pascal命名法,即所有單詞連命名法,即所有單詞連寫,每個單詞的第一個字母大寫,其他字母小寫。例如寫,每個單詞的第一個字母大寫,其他字母小寫。
20、例如HelloWorld、GetData等。等。l變量名、一般對象名、控件對象名以及方法的參數(shù)名全部使用變量名、一般對象名、控件對象名以及方法的參數(shù)名全部使用Camel命名法,即所有單詞連寫,但是第一個單詞全部小寫,命名法,即所有單詞連寫,但是第一個單詞全部小寫,其他每個單詞的第一個字母大寫。例如:其他每個單詞的第一個字母大寫。例如:userName、userAge等。等。l如果是私有字段,為了和具有相同名字的屬性名區(qū)分,私有的如果是私有字段,為了和具有相同名字的屬性名區(qū)分,私有的字段名也可以用下劃線(字段名也可以用下劃線(“_”)開頭,例如)開頭,例如屬性名為屬性名為Age,私有字段名可以為
21、,私有字段名可以為age或者或者_Age。1.3 控制臺應用程序控制臺應用程序l1.3.1 控制臺應用程序的輸入與輸出控制臺應用程序的輸入與輸出l1.3.2 在控制臺應用程序中輸出格式化數(shù)據(jù)在控制臺應用程序中輸出格式化數(shù)據(jù)1.3.1 控制臺應用程序的輸入與輸出控制臺應用程序的輸入與輸出l控制臺輸出控制臺輸出Console.Write ();u把各種類型的數(shù)據(jù)或對象轉換成字符串寫入標準輸出流把各種類型的數(shù)據(jù)或對象轉換成字符串寫入標準輸出流Console.WriteLine();u與與WriteWrite的區(qū)別的區(qū)別:自動:自動輸出回車輸出回車、換行符(換行符(“rn”);rn”);例如例如int
22、 age = 18; int age = 18; string s = abc;string s = abc;Console.Write(age);Console.Write(age);Console.Write(s);Console.Write(s);Console.WriteLine(age);Console.WriteLine(age);Console.WriteLine(s);Console.WriteLine(s);1.3.1 控制臺應用程序的輸入與輸出控制臺應用程序的輸入與輸出l控制臺輸入控制臺輸入Console.ReadKey();u標準輸入流讀取用戶按下的字符或功能鍵。標準輸入
23、流讀取用戶按下的字符或功能鍵。u例如:例如:ConsoleKeyInfo c=Console.ReadKey()ConsoleKeyInfo c=Console.ReadKey();Console.ReadLine();u從標準輸入流讀取一行字符。例如:從標準輸入流讀取一行字符。例如: string s = Console.ReadLine();string s = Console.ReadLine();1.3.1 控制臺應用程序的輸入與輸出控制臺應用程序的輸入與輸出l快速鍵入快速鍵入C#代碼代碼方法方法1:連續(xù)按兩次:連續(xù)按兩次鍵鍵方法方法2:在要插入代碼段的位置處,用鼠標右擊選:在要插入代
24、碼段的位置處,用鼠標右擊選擇擇“外側代碼外側代碼”的辦法插入代碼段。的辦法插入代碼段。例如:例如:u鍵入鍵入“for”“for”三個字母后,連續(xù)按兩次三個字母后,連續(xù)按兩次鍵鍵,觀察系統(tǒng)自動插入的代碼段。,觀察系統(tǒng)自動插入的代碼段。1.3.2 在控制臺應用程序中輸出格式化數(shù)據(jù)在控制臺應用程序中輸出格式化數(shù)據(jù)l在在Console.Write和和Console.WriteLine方法中,可直接定義方法中,可直接定義數(shù)據(jù)轉換為字符串后的輸出格式數(shù)據(jù)轉換為字符串后的輸出格式Console.WriteLine(格式化表示格式化表示, 參數(shù)序列)參數(shù)序列);Console.Write(格式化表示格式化表示
25、, 參數(shù)序列)參數(shù)序列);例如:例如:int x=10, y=20, z=30;int x=10, y=20, z=30;/輸出輸出10+20+30=6010+20+30=60Console.WriteLine(0+1+2=3, x, y, z, x+y+z); Console.WriteLine(0+1+2=3, x, y, z, x+y+z); /輸出輸出60=20+30+1060=20+30+10Console.WriteLine(3=1+2+0, x, y, z, x+y+z); Console.WriteLine(3=1+2+0, x, y, z, x+y+z); 1.3.2 在控制
26、臺應用程序中輸出格式化數(shù)據(jù)在控制臺應用程序中輸出格式化數(shù)據(jù)N , M :格式碼格式碼 l格式化輸出形式格式化輸出形式N 從零開始的整數(shù),表示第幾個參數(shù)。從零開始的整數(shù),表示第幾個參數(shù)。M 可選參數(shù),整數(shù),表示最小長度??蛇x參數(shù),整數(shù),表示最小長度。u若參數(shù)若參數(shù)N N的長度小于的長度小于M M,就用空格填充;,就用空格填充;u如果如果M M為負,則左對齊;如果為負,則左對齊;如果M M為正,則右對齊;為正,則右對齊;格式碼格式碼可選參數(shù),格式化代碼樣式??蛇x參數(shù),格式化代碼樣式。u格式碼:有默認位數(shù),可用整數(shù)指定位數(shù);格式碼:有默認位數(shù),可用整數(shù)指定位數(shù);CC貨幣形式、貨幣形式、DD十進制形式
27、、十進制形式、FF固定精度形式、固定精度形式、EE指數(shù)指數(shù)形式、形式、NN用逗號分隔千位數(shù)字、用逗號分隔千位數(shù)字、PP百分比形式百分比形式、XX十六十六進制形式進制形式占位符:占位符:0強制占位符、強制占位符、#有效占位符有效占位符1.3.2 在控制臺應用程序中輸出格式化數(shù)據(jù)在控制臺應用程序中輸出格式化數(shù)據(jù)l利用利用string.Format方法格式化字符串方法格式化字符串先用先用String.Format方法拼接字符串,再用方法拼接字符串,再用WriteLine方法方法輸出;輸出;既可以在控制臺應用程序中使用,也可以在其他應用程序既可以在控制臺應用程序中使用,也可以在其他應用程序中(中(Wi
28、nForm、WPF等)使用。等)使用。例如:例如:int i = 123;int i = 123;/d6/d6表示不夠表示不夠6 6位左邊補零位左邊補零string s = string.Format(0:d6, i);string s = string.Format(0:d6, i);Console.WriteLine(s); Console.WriteLine(s); 1.3.2 在控制臺應用程序中輸出格式化數(shù)據(jù)在控制臺應用程序中輸出格式化數(shù)據(jù)l3利用利用ToString方法格式化字符串方法格式化字符串如果是一個變量,使用如果是一個變量,使用ToString方法更簡單。方法更簡單。Cons
29、ole、WinForm、WPF、Silverlight、ASP.NET等等應應用程序都可以利用用程序都可以利用string.Format方法或者方法或者ToString方法定方法定義數(shù)據(jù)的格式。義數(shù)據(jù)的格式。例如:例如:int n1 = 12;int n1 = 12;string s1 = n1.ToString(X4); /Xstring s1 = n1.ToString(X4); /X格式表示用十六進格式表示用十六進制輸出。結果為:制輸出。結果為:000C000Cstring s2 = n1.ToString(d5); /string s2 = n1.ToString(d5); /結果:結
30、果:00012000124控制臺應用程序示例控制臺應用程序示例l【例例1-1】 演示控制臺應用程序的基本設計方法,以及如何在演示控制臺應用程序的基本設計方法,以及如何在一個解決方案中包含多個應用程序項目。一個解決方案中包含多個應用程序項目。 Console.Write(請輸入請輸入x和和y(例如(例如12,15),然后按回車鍵:然后按回車鍵:); string s = Console.ReadLine(); string a = s.Split(,); int x = int.Parse(a0); int y = int.Parse(a1); int z = ClassLibraryExamp
31、le.MyClass.Multiplication(x, y); Console.WriteLine(x*y=0, z); Console.WriteLine(請按任意鍵結束程序。請按任意鍵結束程序。); Console.ReadKey();1.4 Windows窗體應用程序窗體應用程序l1.4.1 Windows窗體應用程序的特點窗體應用程序的特點l1.4.2 Windows窗體應用程序的啟動和退出窗體應用程序的啟動和退出l1.4.3 窗體的創(chuàng)建、顯示、隱藏和關閉窗體的創(chuàng)建、顯示、隱藏和關閉l1.4.4 消息框(消息框(MessageBox)l1.4.5 利用利用WinForm控件實現(xiàn)輸入和
32、輸出控件實現(xiàn)輸入和輸出l1.4.6 錯誤提示(錯誤提示(ErrorProvider)1.4.1 Windows窗體應用程序的特點窗體應用程序的特點lWindows窗體應用程序窗體應用程序是在是在Windows XP操作系統(tǒng)上開發(fā)客戶端應用程序的主要開操作系統(tǒng)上開發(fā)客戶端應用程序的主要開發(fā)模型,這種開發(fā)模型利用發(fā)模型,這種開發(fā)模型利用GDI+和操作系統(tǒng)交互。和操作系統(tǒng)交互。lWindows窗體應用程序現(xiàn)狀窗體應用程序現(xiàn)狀WinForm已有多年的歷史,其技術高度成熟,如果開發(fā)不包含動已有多年的歷史,其技術高度成熟,如果開發(fā)不包含動畫、多媒體畫、多媒體(音頻視頻)(音頻視頻)以及三維圖形等高級功能的
33、程序,使用以及三維圖形等高級功能的程序,使用WinForm應用程序可獲得比較高的開發(fā)效率和運行性能。應用程序可獲得比較高的開發(fā)效率和運行性能。1.4.1 Windows窗體應用程序的特點窗體應用程序的特點lGDI(Graphics Device Interface,圖形設備接口),圖形設備接口)是是Windows 2000操作系統(tǒng)內(nèi)核提供的功能,提供二維圖形和文操作系統(tǒng)內(nèi)核提供的功能,提供二維圖形和文本處理功能以及功能有限的圖像處理功能本處理功能以及功能有限的圖像處理功能沒有三維圖形和音頻視頻等多媒體處理功能。沒有三維圖形和音頻視頻等多媒體處理功能。隨著隨著Windows 2000操作系統(tǒng)退出
34、歷史舞臺,使用操作系統(tǒng)退出歷史舞臺,使用GDI技術的開技術的開發(fā)人員也越來越少。發(fā)人員也越來越少。lGDI+是是Windows XP操作系統(tǒng)內(nèi)核提供的功能,在操作系統(tǒng)內(nèi)核提供的功能,在GDI的基礎上增加的基礎上增加了一套基于了一套基于.NET框架的編程接口,從而讓我們能使用框架的編程接口,從而讓我們能使用C#快速實快速實現(xiàn)窗體界面繪制和繪圖功能?,F(xiàn)窗體界面繪制和繪圖功能。GDI+沒有沒有GPU硬件加速功能,所有圖形圖像處理功能全部都是硬件加速功能,所有圖形圖像處理功能全部都是靠軟件來實現(xiàn)??寇浖韺崿F(xiàn)。1.4.2 Windows窗體應用程序的啟動和退出窗體應用程序的啟動和退出l窗體應用程序的啟
35、動和停止窗體應用程序的啟動和停止使用使用Application類提供的靜態(tài)方法來啟動、停止應用程序類提供的靜態(tài)方法來啟動、停止應用程序Run方法:方法:u用于在當前線程上啟動應用程序消息循環(huán),并顯示窗體。用于在當前線程上啟動應用程序消息循環(huán),并顯示窗體。Exit方法:方法:u用于停止消息循環(huán)。用于停止消息循環(huán)。觀察觀察Program.cs中的中的Main方法。方法。1.4.3 窗體的創(chuàng)建、顯示、隱藏和關閉窗體的創(chuàng)建、顯示、隱藏和關閉l如何在代碼中打開一個新窗體如何在代碼中打開一個新窗體Form2 fm = new Form2(); fm.Show(); 或者或者Form2 fm = new F
36、orm2(); fm.ShowDialog();觀察觀察Show 與與ShowDialog之間的區(qū)別之間的區(qū)別l如何在代碼中如何在代碼中隱藏隱藏一個窗體一個窗體“無模式無模式”窗口窗口:調用調用Hide方法隱藏。方法隱藏。this.Hide();this.Hide();隱藏其他窗體可以調用實例名的隱藏其他窗體可以調用實例名的Hide方法,例如:方法,例如:umyForm.Hide();myForm.Hide();窗體隱藏后,其實例仍在,可重新調用窗體隱藏后,其實例仍在,可重新調用Show方法再次顯示方法再次顯示1.4.3 窗體的創(chuàng)建、顯示、隱藏和關閉窗體的創(chuàng)建、顯示、隱藏和關閉l如何在代碼中關
37、閉一個窗體如何在代碼中關閉一個窗體用法用法1:fm.Close();u關閉其他窗體關閉其他窗體用法用法2:this.Close();u關閉當前打開的窗體關閉當前打開的窗體用法用法3:Application.Exit();u不論當前窗體是哪個窗體,只要調用不論當前窗體是哪個窗體,只要調用ApplicationApplication的的ExitExit方法,方法,整個應用程序就會立即退出整個應用程序就會立即退出1.4.3 窗體的創(chuàng)建、顯示、隱藏和關閉窗體的創(chuàng)建、顯示、隱藏和關閉l4注冊事件注冊事件事件是響應用戶操作的一種技術。事件是響應用戶操作的一種技術。雙擊雙擊窗體設計界面窗體設計界面上的某上的
38、某控件,默認會自動注冊最常用的控件,默認會自動注冊最常用的事件事件(例如按鈕的最常用事件是例如按鈕的最常用事件是Click)。)。選擇某個控件,單擊選擇某個控件,單擊【屬性屬性】窗口中的窗口中的“雷電雷電”符號,符號,可可看到該控件對應的各種事件,雙擊指定的事件,可注冊對應看到該控件對應的各種事件,雙擊指定的事件,可注冊對應的事件的事件。在代碼中通過在代碼中通過“+=”注冊指定的事件,通過注冊指定的事件,通過“-=”注銷指注銷指定的事件。當熟悉代碼后,這種辦法是最靈活也是方便的辦定的事件。當熟悉代碼后,這種辦法是最靈活也是方便的辦法。法。1.4.3 窗體的創(chuàng)建、顯示、隱藏和關閉窗體的創(chuàng)建、顯示
39、、隱藏和關閉l【例例1-2】 演示演示W(wǎng)indows窗體應用程序的基本用法。窗體應用程序的基本用法。1.4.4 消息框(消息框(MessageBox)l消息框消息框顯示消息對話框顯示消息對話框可通過檢查可通過檢查Show方法返回的值來確定用戶單擊了哪個按鈕方法返回的值來確定用戶單擊了哪個按鈕l注意注意雖然用雖然用Show方法顯示消息框,但由于它本身是模式窗口,方法顯示消息框,但由于它本身是模式窗口,所以在消息框關閉前,不會執(zhí)行它后面的代碼。所以在消息框關閉前,不會執(zhí)行它后面的代碼。1.4.4 消息框(消息框(MessageBox)lMessageBox的的Show方法提供了多種重載形式,常用有
40、:方法提供了多種重載形式,常用有:public static DialogResult Show(string text)public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)例如:例如:uMessageBox.Show (MessageBox.Show (輸入的內(nèi)容不正確輸入的內(nèi)容不正確););u消息框關閉后,返回值是消息框關閉后,返回值是DialogResultDialogResult枚舉值之一。枚舉值有:枚舉值之一。枚舉值有:N
41、oneNone(消息框未返回值)、(消息框未返回值)、OKOK、CancelCancel、YesYes和和NoNo1.4.4 消息框(消息框(MessageBox)lText:在消息框中顯示的文本。在消息框中顯示的文本。lcaption:在消息框的標題欄中顯示的文本。在消息框的標題欄中顯示的文本。lbuttons:MessageBoxButtons枚舉值之一,指定在消息框中顯示哪些按鈕。枚枚舉值之一,指定在消息框中顯示哪些按鈕。枚舉值有舉值有OK、OKCancel、YesNoCancel和和YesNo。licon:MessageBoxIcon枚舉值之一,指定在消息框中顯示哪個圖標。枚舉值枚舉值
42、之一,指定在消息框中顯示哪個圖標。枚舉值有有None(不顯示圖標)、(不顯示圖標)、Hand(手形)、(手形)、Question(問號)(問號).1.4.4 消息框(消息框(MessageBox)l【例例1-3】 演示消息框的基本用法。演示消息框的基本用法。1.4.5 利用利用WinForm控件實現(xiàn)輸入和輸出控件實現(xiàn)輸入和輸出l1分組(分組(Panel、GroupBox)Panel控件和控件和GroupBox控件均用于對控件進行分組控件均用于對控件進行分組不同之處:不同之處:Panel控件不能顯示標題但可以有滾動條,而控件不能顯示標題但可以有滾動條,而GroupBox控件可顯示標題但不能顯示滾
43、動條??丶娠@示標題但不能顯示滾動條。l2標簽(標簽(Label)和文本框()和文本框(TextBox)Label控件用于提供控件或窗體的描述性文字控件用于提供控件或窗體的描述性文字uTextText屬性屬性TextBox控件允許用戶在應用程序中輸入或編輯文本控件允許用戶在應用程序中輸入或編輯文本uReadOnlyReadOnly屬性、屬性、NameName屬性、屬性、PasswordCharPasswordChar、TextText1.4.5 利用利用WinForm控件實現(xiàn)輸入和輸出控件實現(xiàn)輸入和輸出l【例例1-4】 演示演示TextBox控件的基本用法。控件的基本用法。1.4.5 利用利用
44、WinForm控件實現(xiàn)輸入和輸出控件實現(xiàn)輸入和輸出l3復選框(復選框(CheckBox)和單選按鈕()和單選按鈕(RadioButton)CheckBoxu選擇一個或者多個選項,每個選項一般用選中和非選中選擇一個或者多個選項,每個選項一般用選中和非選中兩種狀態(tài)表示。兩種狀態(tài)表示。RadioButtonu一組一組RadioButtonRadioButton按鈕中只能有一個處于選中狀態(tài)。按鈕中只能有一個處于選中狀態(tài)。u一旦某一項被選中,同組中其他一旦某一項被選中,同組中其他RadioButtonRadioButton按鈕的選中按鈕的選中狀態(tài)狀態(tài)將將自動清除。自動清除。1.4.5 利用利用WinFo
45、rm控件實現(xiàn)輸入和輸出控件實現(xiàn)輸入和輸出l【例例1-5】 演示演示CheckBox控件和控件和RadioButton控件的基本用控件的基本用法。法。1.4.5 利用利用WinForm控件實現(xiàn)輸入和輸出控件實現(xiàn)輸入和輸出l列表(列表(ListBox)和下拉列表()和下拉列表(ComboBox)ListBox(列表框)控件和(列表框)控件和ComboBox(下拉框)控件均用(下拉框)控件均用于顯示一組條目,以便操作者從中選擇一條或者多條信息,于顯示一組條目,以便操作者從中選擇一條或者多條信息,并對其進行相應的處理并對其進行相應的處理兩個控件的用法相似。兩個控件的用法相似。常用屬性和方法:常用屬性和
46、方法:uSelectedIndexSelectedIndex屬性:獲取或設置當前選擇項的索引序號屬性:獲取或設置當前選擇項的索引序號uSelectedItemSelectedItem屬性:獲取或設置當前選擇項的值。屬性:獲取或設置當前選擇項的值。uCountCount屬性:獲取項的個數(shù)。屬性:獲取項的個數(shù)。uItems.AddItems.Add方法:添加項。方法:添加項。uItems.ClearItems.Clear方法:清除所有項。方法:清除所有項。uItems.RemoveAtItems.RemoveAt方法:刪除指定的項。方法:刪除指定的項。1.4.6 錯誤提示(錯誤提示(ErrorPr
47、ovider)lErrorProvider組件一般用于提示用戶輸入的信息有錯誤,利組件一般用于提示用戶輸入的信息有錯誤,利用該組件可在指定的控件(如文本框)旁顯示一個閃爍的錯誤用該組件可在指定的控件(如文本框)旁顯示一個閃爍的錯誤圖標,當用戶將鼠標指針放在閃爍的圖標上時,會自動顯示錯圖標,當用戶將鼠標指針放在閃爍的圖標上時,會自動顯示錯誤信息。誤信息。l【例例1-7】 演示演示ErrorProvider組件的基本用法。組件的基本用法。1.5 WPF和和Silverlight應用程序應用程序l1.5.1 WPF應用程序應用程序l1.5.2 Silverlight應用程序應用程序l1.5.3 其他
48、應用程序模板其他應用程序模板1.5 WPF和和Silverlight應用程序應用程序lWPF高效率運行動畫、三維圖形和音頻視頻等多媒體功能高效率運行動畫、三維圖形和音頻視頻等多媒體功能WinForm應用程序只能靠軟件來實現(xiàn),無法直接利用應用程序只能靠軟件來實現(xiàn),無法直接利用GPU的硬件加速功能的硬件加速功能WPF和和Silverlight最適用于開發(fā)在最適用于開發(fā)在Windows 7、Windows 8操作系統(tǒng)上運行的應用程序。操作系統(tǒng)上運行的應用程序。WPF適用于適用于C/S客戶端開發(fā),客戶端開發(fā),Silverlight適用于手機和適用于手機和Web富客戶端開發(fā)。富客戶端開發(fā)。WPF利用操作
49、系統(tǒng)底層支持的利用操作系統(tǒng)底層支持的DirectX實現(xiàn)硬件加速。實現(xiàn)硬件加速。1.5.1 WPF應用程序應用程序l1DirectX簡介簡介1995年,年,DirectX 1.0誕生誕生u它提供了直接讀取圖形硬件(顯卡)的功能,但該版本它提供了直接讀取圖形硬件(顯卡)的功能,但該版本還不包括還不包括3D3D功能。當時流行的編程接口是功能。當時流行的編程接口是OpenGLOpenGL,DirectX 1.0DirectX 1.0剛推出時,由于眾多的硬件廠家均不支持剛推出時,由于眾多的硬件廠家均不支持DirectXDirectX,該版本基本沒有獲得成功。,該版本基本沒有獲得成功。1996年,微軟推出
50、年,微軟推出DirectX 2.0。u該版本在該版本在DirectXDirectX中加入了中加入了Direct3DDirect3D,用于訪問,用于訪問3D3D硬件加硬件加速的高級圖形功能,通過提供通用的速的高級圖形功能,通過提供通用的COMCOM編程接口使硬件編程接口使硬件和設計完全分離。和設計完全分離。1.5.1 WPF應用程序應用程序l1DirectX簡介簡介1997年,微軟推出年,微軟推出DirectX 3.0。此時。此時3D游戲逐漸深入人心游戲逐漸深入人心不少顯卡生產(chǎn)廠家開始支持不少顯卡生產(chǎn)廠家開始支持DirectX,并陸續(xù)推出,并陸續(xù)推出3D圖形加圖形加速卡。隨后微軟直接推出速卡。隨
51、后微軟直接推出DirectX 5.0(沒有出現(xiàn)(沒有出現(xiàn)4.0版)版)5.0版的版的3D功能日益強大。使游戲中的功能日益強大。使游戲中的3D技術逐漸走入成熟階技術逐漸走入成熟階段。此時段。此時DirectX也得到了大多數(shù)知名廠商的認可和強力支也得到了大多數(shù)知名廠商的認可和強力支持。持。2001年,微軟發(fā)布了年,微軟發(fā)布了DirectX 8.02002年,微軟發(fā)布年,微軟發(fā)布DirectX 9.02006年,微軟推出年,微軟推出DirectX 10.0版版1.5.1 WPF應用程序應用程序l1DirectX簡介簡介2009年,微軟推出多線程渲染的年,微軟推出多線程渲染的DirectX 11.0。
52、該版本引入。該版本引入了了Shader Model 5.0,以便讓,以便讓GPU從事更多的通用計算工從事更多的通用計算工作,而不僅僅是作,而不僅僅是3D運算,從而鼓勵開發(fā)人員更好地將運算,從而鼓勵開發(fā)人員更好地將GPU作為并行處理器來使用。作為并行處理器來使用。隨后,微軟將隨后,微軟將DirectX作為作為Windows 7、Windows 8操作系操作系統(tǒng)底層默認的核心編程接口。統(tǒng)底層默認的核心編程接口。而對而對DirectX 11.0封裝后的封裝后的WPF和和HTML5的實現(xiàn)的實現(xiàn),則同時則同時支持支持Windows 7和和Windows 8操作系統(tǒng)以及操作系統(tǒng)以及IE 9.0和和IE10.0瀏覽器瀏覽器【IE10.0正式版支持正式版支持Win7、Wi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油購銷合同
- 產(chǎn)品選型與采購策略手冊
- 2025年鹽城貨運從業(yè)資格證題庫
- 高效率辦公工具與技術解決方案研究
- 游戲美術設計制作全流程指南
- 商標許可使用協(xié)議
- 化學實驗中誤差傳遞規(guī)律研究
- 口腔預防科知識培訓課件
- 2025年烏蘭察布年貨運從業(yè)資格證考試答案
- 黑弧奧美北京永定河孔雀城年度回顧匯報
- 流動兒童基本情況登記表
- GB/T 43868-2024電化學儲能電站啟動驗收規(guī)程
- 2024年時政試題庫(綜合卷)
- 追悼會主持詞開場白-追悼會流程主持詞
- Unit7ArtLesson2BeijingOpera課件高中英語北師版
- 人教版七年級數(shù)學下冊 第五章 相交線與平行線5.4 平移(課件)
- 數(shù)學之美:欣賞數(shù)學的優(yōu)雅與美麗
- 2023高考語文文言文復習:《說苑》練習題(含答案解析)
- 成都印鈔公司招聘考試題
- 低血糖健康宣教
- 跨文化商務交際導論-教學課件Unit 2 Intercultural business communication
評論
0/150
提交評論