Top Banner

of 66

GiaotrinhC#SV

Jul 16, 2015

Download

Documents

November Rain
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Bi ging C s lp trnh 2 1 CHNG 1. LM QUEN VI VISUAL STUDIO 2010 1.Gii thiu Visual Studio.NET 2010 1.1.Tnh hnh trc khi Visual Studio.NET ra i Visphttrinlintcvadngcathgiicngnghthngtinngynay,ccphn mm,cchiuhnh,ccmitrngphttrinvccngdnglintcrai.Tuy nhin, i khi vic pht trin khng ng nht v nht l do khng tng thch v mt li ch ca cc cng ty phn mm ln lm nh hng n cng vic ca nhng k s xy dng phn mm. TronggiiphttrinngdngtrnInternettacthsdngccngnngJava,PHP, ASPKhiJavamicSunCorporationgiithiuncmtscmnhngkv hng ti vic chy trn nhiu h iu hnhkhc nhau, c lp vi cc b x l. c bit Java rt thch hp cho vic vit cc ng dng trn Internet. Tuy nhin, Java li c hn ch v mt tc v trn thc t vn cha thnh hnh. lmgimkhnngnhhngcaJava,bnhngMicrosoftcngcungcpngnng ASP-chuyndngvitccngdngtrnWeb.TrongcctrangASPvachath HTMLvachacconscript(VBScript,JavaScript).Trongqutrnhxlmttrang ASP, nu l th HTML th s c gi thng ti trnh duyt, cn nu l cc on script th s c chuyn thnh cc dng HTML ri gi i. Khi nh lp trnh mun ng gi v s dng li mt s chc nng no , th h dch cc on chng trnh thnh ActiveX v a n vo Web Server. Tuynhin, v l dobomt nn ccAdmin ca cc trangWeb thng rt d dt khi ci ActiveX l trn my ca h, ngoi ra vic tho g cc phin bn ca ActiveX ny cng l cng vic rt kh khn. Cn trong gii pht trin ng dng trn Windows ta c th vit ng dng bng Visual C++, Delphi,VisualBasicylmtscngcphbinvmnh.TrongVisualC++l mtngnngrtmnhnhngcngrtkhsdng.VisualBasicthngindhc,d dngnhtnnrtthngdngnhnghnchlVisualBasickhngphingnnghng i tng v khng h tr kh nng pht trin thut ton. Tm li trong gii lp trnh theo Microsoft th vic lp trnh trn desktop cho n lp trnh h phn tn hay trn web l nhng mng c lp. 1.2.S ra i ca Visual Studio.NET unm1998,saukhihonttphinbnVersion4caInternetInformationServer-IIS, i ng lp trnh ca Microsoft nhn thy h cn c rt nhiu sng kin c th kin ton Bi ging C s lp trnh 2 2 IIS, v h bt u xy dng mt kin trc mi trn nn tng tng v t tn l Next Generation Windows Services - NGWS. Tham vng ca h l cung cp mt mi trng c th dng chung cho tt c ngn ng lp trnh trong b Visual Studio cng nh cho cc ngn ng lp trnh ca cc cng ty khc.Kt qu l nm 2001 Visual Studio.Net 2001 ra i nh du cho mt mi trng lp trnh trn nn .NET Framework 1.0 tin tin mi. Nm 2003, sau 2 nm.NET Frameworknng cp thmmt bc vi phin bn 1.1 vi c im ngoi cc chng trnh Windows truyn thng l cc tp tin .exe gi y Windows cn tn ti nhng chng trnh khc nhng chng trnh chy trn nn .NET. Mun chy chng trnh .NET tach cn ci.NETFramework l . Mt im l th v cng l iu mong i ca tt c lp trnh vin, t phin bn Windows 2003 .NET Framework c ci tnhmtphnmcnhcaWindows.Songsong,mitrngphttrinVisual Studio .NET 2001 c nng cp thnh Visual Studio .NET 2003 cho php vit v chy cc ng dng trn nn .NET Framework 1.1 Cui nm 2005, Visual Studio 2005 vi nn .NET Framework 2.0 mnh m v vt tri hn sovinn.NETFramwork1.1trc.NgaysauMicrosoftcngbphinbn Windows Vista, v ton b Windows l .NET, tt c cc hm API li trong nhng phin bn Windowstrcyucthaythbngcchmhaythvin.NET.Microsoft vit li hon ton li API, khng cn mt lp API no na.1.3.Tng quan v Visual Studio.NET Visual Studio.NET gm 2 phn: Framework v Integrated Development Environment IDE, cho php lp trnh vin khi xy dng cc ng dng c th la chn s dng nhiu ngn ng lptrnhkhcnhaunhVisualC++.NET,VisualC#.NET,VisualJ#.NET,Visual Basic.NETtrongcngmtmitrngphttrinIDEthngnhttrnkintrc.NET Framework.Frameworklthnhphnquantrngnht,lctlivtinhhoacamitrng.NET, Framework gip chng ta bin dch v thc thi cc ng dng .NET (cu trc ca Framework chng ta s tm hiu cc chng sau ca gio trnh). IDE cung cp mt mi trng pht trin trc quan, gip cc lp trnh vin c th d dng v nhanh chng xy dng giao din cng nh vit m lnh cho cc ng dng da trn nn tng .NET. Nu khng c IDE chng ta cng c th dng mt trnh son tho vn bn bt k, v dnhNotepadvitmlnhvsdngcommandlinebindchvthcthing dng. Tuy nhin vic ny mt rt nhiu thi gian, tt nht l chng ta nn dng IDE pht trin cc ng dng, v cng l cch d s dng nht. Ngoi ra trong VisualStudio.NET th lp trnh Winform v Webform l tng t, v d c Visual C#.NET ln Visual Basic.NET u h tr kh nng lp trnh trn Win v Web Bi ging C s lp trnh 2 3 2.Khi ng Visual C# 2010 v giao din OVoStart/Programs/MicrosoftVisualStudio2010/MicrosoftVisualStudio2010,xut hin ca s Start Page. Hnh 1. Ca s Start Page + New Project: To n mi. + Open Project: M cc n c sn. + Recent Projects: Danh sch cc n gn y nht. O Kch chn mc New Project hoc vo File/New/Project hoc bm phm tt Ctrl+Shift+N xut hin ca s New Project Bi ging C s lp trnh 2 4 Hnh 2. Ca s New ProjectChn ngn ng Visual C# v ng dng Windows. t tn cho n ti mc Name. Chn ng dn lu n ti mc Location. Mc Create directory for solution cho php to mt th mc ti Location cha tt c cc tp pht sinh ca n (nu khng cc tp ca n s c lu ti Location). Hnh 3. Th mc cha n Chn OK to mt n mi. Bi ging C s lp trnh 2 5 KtquxuthincasmitrngphttrintchhpIDE,vigiaodinvccthnh phn c bn nh sau: Hnh 4. Mi trng pht trin tch hp IDE C Title Bar: Thanh tiu cha tn n.C MenuBar:ThanhMenu cha y cc cngc cn pht trin,thcthi v ci t ng dng File: cho php m, thm mi v lu tr n Edit: gm cc thao tc h tr vic son tho m lnh nh: copy, ct, dn... View: cho php hin th cc cng c h tr ngi dng trong qu trnh xy dng n nh:-Ca s vit m lnh - Code -Form thit k - Designer Bi ging C s lp trnh 2 6 -Hp cng c - Toolbox -Thanh cng c - Toolbars -Ca s thuc tnh - Properties Window Project:chophpbsungccitngkhcnhauvonnh:ccform,cc component, cc modul, cc lp Built: cho php bin dch n. Debug: cho php chy v g ri chng trnh. Data: cho php thm mi v hin th c s d liu ca n. Tools: cung cp cc cng c cho php kt ni ti cc thit b ngoi vi nh Pocket PC, Smartphone hoc kt ni ti cc h qun tr c s d liu cng nh kt ni ti my ch server C Toolbar: thanh cng c gm mt tp hp cc nt lnh, mi nt lnh cha mt biu tng icons v c chc nng tng ng vi chc nng ca mt mc la chn trong thanh menu. Thanh cng c rt hu ch v trc quan, gip ngi dng d dng v nhanh chng thc hin mt chc nng mong mun ch thng qua mt ci kch chut. VisualC#2010cti39thanhcngckhcnhaunh:Standard,Formatting,Debug, Build... V d hnh nh thanh cng c Standard: Hnh 5. Thanh cng c Standard giccthanhcngctavoView/Toolbarskhisxuthindanhschttccc thanh cng c. Mun n/hin thanh cng c no ta kch chn ti dng cha tn thanh cng c . CToolbox:lhpcngcchacciukhincontrolsctlnFormkhithitk giao din ngi dng. hin th hp cng c ta thc hin mt trong cc cch sau: Vo View/ToolboxBm t hp phm Ctrl+W+X Kch chut ti biu tng Toolbox trn thanh cng c Standard. Bi ging C s lp trnh 2 7 Hnh 6. Hp cng c Toolbox Mc nh hp cng c c chia thnh 11 tab khc nhau nh: All Windows Forms, Common Controls...Ta c th thm mi, loi b, i tn... cc tab bng cch kch chut phi ti v tr bt k trn tab, xut hin mt menu ng cnh cho php la chn cc thao tc cn thc hin. Hnh 7. Cc chc nng lm vic vi tng tab trong Toolbox Bi ging C s lp trnh 2 8 TrongmitabcahpToolboxchadanhschccloiiukhinkhcnhau,cciu khin ny c th thm mi, loi b, thay i v tr Kch chut phi ti mt iu khin bt k trn tab, xut hin mt menu ng cnh cho php la chn cc thao tc cn thc hin. V d thm mi mt iu khin vo trong tab Data, ta kch chut phi ti v tr bt k trn tab Data, chn Choose Items... Hnh 8. Cc chc nng lm vi c vi tng iu khin trong tab Kt qu s xut hin ca s Choose Toolbox Items, kch chn cc iu khin mong mun ri bm OK kt thc. Hnh 9. Ca s Choose Toolbox Items Bi ging C s lp trnh 2 9 C Form Designer: ca s thit k dng thit k giao din cho chng trnh, mi d n c th c mt hoc nhiu Form. Hnh 10. Ca s Form Designer SolutionExplorer:casgiiphp-ylphncasgiptaqunlttcccti nguyn v tp tin d n.Solution Explorer c t chc thnh mt cu trc cy bao gm nhng mc khc nhau, nh: danh sch cc Form ca n, danh sch cc lp Class, danh sch cc ti nguyn cng nh danh sch c s d liu hin th ca s Solution Explorer ta thc hin mt trong cc cch sau: Vo View/Solution ExplorerBm t hp phm Ctrl+W+S Kch chut ti biu tng Solution Explorer trn thanh cng c Standard Hnh 11. Ca s Solution Explorer Bi ging C s lp trnh 2 10 Trong ca s Solution Explorer c hai thnh phn hay dng l View Code v View Designer. View Code: c tc dng hin th ca s son tho m lnh cho Form ang c chn. Ngoi ra, hin th ca s son tho m lnh ta cn c mt s cch khc nh sau: Vo View/Code. Bm phm tt F7. Kch p chut ti ca s thit k ca form. Giao din ca s son tho nh sau: Hnh 12. Ca s son tho ViewDesigner:ctcdnghinthcasthitkgiaodincaFormangcchn. Ngoi ra, hin th ca s thit k giao din ta cn c mt s cch khc nh sau: Vo View/Designer Bi ging C s lp trnh 2 11 Bm phm tt Shift+F7. C Properties Window: ca s ny lit k tt c cc thuc tnh, s kin ca cc iu khin trong form.Munhinththuctnhcaitngnotakchchutchnitngtrongcas thit k giao din, hoc chn tn i tng trong danh sch th xung phn u ca ca s Properties. Hnh 13. Ca s Properties Mi thuc tnh c mt gi tr mc nh, ta c th thay i gi tr ca cc thuc tnh trc tip ticasPropertiestronglcthitk,hocthayibngmlnhtronglcthihnh chng trnh. hin th ca s Properties ta thc hin theo mt trong cc cch sau: Vo View\Properties Window. Kch chn biu tng Properties Window trn thanh cng c Standard. Bm phm tt Ctrl+W+P Bi ging C s lp trnh 2 12 CHNG 2. VIT CHNG TRNH U TIN Mt chng trnh ng dng trong C# c thc hin theo hai bc sau: Thit k giao din. Vit m lnh cho chng trnh. 1. bi Vit chng trnh gm 1 hp vn bn Textbox v 3 nt lnh Button: Display, Clear, Exit vi cc yu cu sau: Kch chut vo nt Display th trong hp vn bn xut hin dng ch: Welcome to Visual C# 2010. Kch chut vo nt Clear th ni dung trong hp vn bn mt i. Kch chut vo nt Exit thot khi chng trnh quay li ca s son tho. Hnh 14. Giao din chng trnh u tin 3.M n mi M Microsoft Visual Studio 2010, chn File/New/Project khi ng mt n mi. ChnngnngVisualC#vngdngWindows,ttnchontimcNamel Welcome ri chn OK. 4.Thit k giao din 4.1.t tn v tiu cho form Bi ging C s lp trnh 2 13 Kch chut vo v tr bt k trn Form, trong ca s Properties sa cc thuc tnh: Name: frmWelcome Text: The first program Trong ca s Solution Explorer kch chut ti Form1.cs, trong ca s Properties sa thuc tnh File Name l frmWelcome.cs Hnh 15. i tn form trong ca s Solution Explorer 4.2.Thm iu khin hp vn bn Textbox KchchutvobiutngtrnhpcngcToolbox,givkochutt Textbox vo Form. Ngoi ra ta c th kch p chut ti biu tng TextBox, iu khin ny s c t ng t vo Form.Khi c iu khin TextBox trong Form ta c th thay i v tr v kch thc ca Textbox cho ph hp. Khimi xut hin trn Form hp Textbox c tnmc nhl TextBox1,ta thay i gi tr nybng cch kch chut chniu khin TextBox1, ti ca sProperties chn thuc tnh Name sa thnh txtWelcome. 4.3.Thm iu khin nt lnh Button Kch chut vo biu tng, gi v ko chut a iu khin nt lnh ln Form, nt lnh ny c tn mc nh l Button1 v ni dung cng l Button1.Bi ging C s lp trnh 2 14 Thc hin tng t a thm 2 nt lnh Button2 v Button3 vo form. thay i hai thuc tnh Name v Text ca cc nt lnh ta thc hin nh sau: Kchchutvontlnh1,trongcasPropertiessathuctnhNamel btnDisplay, thuc tnh Text l Display Kch chut vo nt lnh 2, sa thuc tnh Name l btnClear, thuc tnh Text l Clear Kch chut vo nt lnh 3, sa thuc tnh Name l btnExit, thuc tnh Text l Exit Ch : Mi iu khin u c thuc tnh Name, d dng qun l, g ri chng trnh ta nnttniukhintngngvichcnngcanvctipungchloiiu khin u.V d: Textbox c tip u ng - txt, Button - btn, Form - frm Cc tip u ng c vit ch thng, tn ca iu khin c vit hoa ch ci u tin, v d: txtWelcome. 5.Vit code 5.1.Vit code cho nt lnh btnDisplay Ta m ca s son tho Code Editor bng cch kch p chut vo nt Display. Trong ca s Code, C# nh ngha sn cho chng ta mt khng gian tn - namespace i din cho form ang xt v 2 dng m u v kt thc cho s kin Click ca nt Display.GvogiathtcbtnDisplay_ClickdnglnhgngitrWelcometoVisualC#2010 cho thuc tnh Text ca iu khin txtWelcome nh sau: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Welcome { public partial class frmWelcome : Form { public frmWelcome() { InitializeComponent(); } Bi ging C s lp trnh 2 15 private void btnDisplay_Click(object sender, EventArgs e) { txtWelcome.Text = "Welcome to Visual C# 2010"; } } } Ch : Hu nh tt c cc th tc x l mt s kin no ca cc iu khin trn form u c 2 i s l sender v e. Trong : i s sender c kiu object i din cho i tng pht sinh s kin. iseckiuEventArgschaccthngtinvskinnh:vtrchut,thi gian pht sinh s kinTa c cu trc chung gn gi tr cho thuc tnh ca mt iu khin khi vit m lnh nh sau: . = ; CcthuctnhcacciukhintrongC#rtphongph,C#cungcptinch Intellisence t ng hin th mt danh sch cc thuc tnh ca iukhin sau khi ta g tn iu khin v du chm . la chn mt thuc tnh, ta c th dng phm mi tn ln, xung la chn hoc g cc k t u ca thuc tnh cn s dng, sau n phm Tab hoc du cch t ng chn tn thuc tnh vo dng lnh. Hnh 16. Tin ch Intellisence Bi ging C s lp trnh 2 16 Trongmitrngsontho,nugsaicphpthC#sbtlingaybngcchhinthmt ng gch chn hnh rng ca di cu lnh sai. Khi sa xong li th ng rng ca s t ng bin mt. 5.2.Vit code cho nt lnh btnClear Quay li ca s thit k Design, kch p chut vo nt Clear, g m lnh cho nt Clear nh sau: private void btnClear_Click(object sender, EventArgs e) { txtWelcome.Text = ""; } 5.3.Vit code cho nt lnh btnExit Quay li ca s thit k Design, kch p chut vo nt Exit, g m lnh nh sau: private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); } Lnh Application.Exit() c tc dng ng v xo ra khi b nh tt c cc ca s ang c thc hin trong chng trnh v quay tr v ca s thit k. 6.Lu n Chn File/Save All hoc kch chn biu tng trn thanh cng c Standard. 7.Cc tp tin ca n Khi to n, Visual Studio.NET sinh ra cc tp tin sau: .sln: y l tp tin gii php (solution file), mi ng dng c mt tp tin loi ny n bao gm mt hoc nhiu tp tin d n. .csproj:yltptindn(projectfile)caC#,mitptindngmmthoc nhiu tp tin ngun, cc tp tin ngun trong cng mt d n phi c vit cng mt ngn ng. .cs: y l tp tin ngun (source file) ca C# l ni cha m lnh ca chng trnh. AssemblyInfor.cs: tp tin ny cho php thm mt s thuc tnh vo chng trnh nh: tn tc gi, ngy to chng trnh Bi ging C s lp trnh 2 17 8.Chy chng trnh chy mt chng trnh C# ta thc hin theo 1 trong cc cch sau: Chn Debug/Start Debugging. Kch chut vo biu tng Start Debugging trn thanh cng c Standard. Bm phm tt F5. 9.Dng chng trnh Khi chy chng trnh, nu xut hin li ta c th dng chng trnh v quay v ca s son tho sa li. Ta c cc cch thc hin sau: Vo Debug/Stop Debugging. Kch chut vo biu tng Stop Debugging trn thanh cng c Standard. Bm phm tt Ctrl+Alt+Break. 10. M n c m mt n c ta c cc cch thc hin nh sau: Mthmcchan,vdthmcWelcometrongngdnD:\,kchp vo tp tin Welcome.sln m n Welcome. Mmi trng Microsoft Visual Studio 2010, trong ca s Start Page kch chn n cn m trong mc Recent Projects (nu c). MmitrngMicrosoftVisualStudio2010,voFile/OpenProject,chnng dn n tp tin .sln ca n ri chn Open.11. Thot khi Visual C# 2010 Chn File/Exit. Bi ging C s lp trnh 2 18 CHNG 3. D LIU V CU TRC IU KHIN 1.Bin, hng v cc kiu d liu 1.1.Bin Binlmtilngdngchadliutmthitrongqutrnhtnhton.Ttccc bin c s dng trong chng trnh u phi c khai bo ngay tu, bin c chia thnh 3 loi bao gm: Bin u vo, bin u ra v bin trung gian. Bin c th c khai bo ti 2 ni gm: Bn trong phn nh ngha lp ca Form. Bn trong mt phng thc. public partial class frmWelcome : Form { // Ni khai bo bin; private void bntDisplay_Click(object sender, EventArgs e) { // Ni khai bo bin; } } Phm vi ca mt bin: ph thuc vo v tr khai bo ca bin, nu bin c khai bo trong phnnhnghalpcaFormthlbintonccctcdngtrongtonbcconm lnh ca form, nu bin c khai bo bn trong mt phng thc th l bin cc b ch c tc dng trong phng thc cha n. Bin ging nh nhng chic hp trong b nh c kh nng lu gi gi tr, c nhiu kiu gi tr khc nhau m C# c th x l nh: kiu s nguyn, kiu s thc, kiu k t Khi khai bo mt bin ta phi ch ra kiu gi tr m n s lu tr.C php khai bo bin nh sau: Kiu d liu Tnbin [=Gi tr]; Tnbin:lmtchuiccktdongilptrnhttbaogmccchci,chsv du gch di. Tn bin phi bt u bng mt ch ci, khng c cha du cch, C# phn bit ch hoa ch thng.Bi ging C s lp trnh 2 19 1.2.Hng Hng l i lng dng cha nhng d liu c gi tr khng i trong sut qu trnh tnh ton. S dng hng lm chng trnh sng sa d c nh tn gi gi nh thay v cc con s.Hng c khai bo theo c php sau: const Kiu d liu Tnhng = Gi tr; 1.3.Cc kiu d liu 1.3.1.Kiu s int, long: lu tr cc s nguyn, int c ln 4 bytes, long c ln 8 bytes. float, double: biu din cc s thc, kiu float dng 4 bytes, double dng 8 bytes. V d khai bo bin s: int a; a=10; longb=10L; float c =19.34F;doubled=19.34; Cc php ton s hc: Cng: +,+= Tr: -, -= Nhn: *, *= Chia:/,/=.Tacint/int=int,int/double=double,double/int=double, double/double=double V d: 8/5=1;8.0/5=1.6 Ch : cc php ton x[+,-,*,/]=y tng ng vi php ton: x=x[+,-,*,/]y %: php chia ly phn d, v d 5 % 2=1, 10.8 % 4 = 2.8 Math.Round(x,n): hm lm trn s thc, v d: Math.Round(11.346,2) = 11.35 Math.Sin(x): hm tnh gi tr ca sin(x) Math.Cos(x): hm tnh gi tr ca cos(x) Math.Exp(x): hm tnh gi tr ex Bi ging C s lp trnh 2 20 Math.Pow(x,y): hm tnh gi tr xy Math.Abs(x): hm tnh gi tr tuyt i ca x Math.Sqrt(x): hm tnh cn bc hai ca x Math.Floor(x): hm tr v s nguyn gn x nht, v d: Math.Floor(11.756) = 11 Math.Truncate(x): hm tr v phn nguyn ca x, v d: Math.Truncate(11.756) = 11 Ta c: Math.Floor(-11.756) = -12 v Math.Truncate(-11.756) = -11 Cc php ton so snh: kt qu tr v ca cc php ton so snh c dngng hoc sai. Ln hn: > Nh hn: < Ln hn hoc bng: >= Nh hn hoc bng: =0). 1.3.7.Kiu d liu mng Mnglmttphpccbinccngtnvcngkiudliu.Dngmnglmchng trnh n gin v ngn gn hn. Mng c cn trn, cn di v cc thnh phn trong mng l lin tc gia 2 cn. Khai bo mng: mng c khai bo theo c php sau: Kiu d liu[]tn mng ; cp pht b nh cho mng ta dng ton t new theo sau l tn kiu d liu v kch thc ca mng c t trong cp du ngoc vung. V d khai bo mng mt chiu nguyn a gm 10 phn t : int[] a = newint[10] ;Khai bo mng 2 chiu thc b gm 10 hng, 5 ct double[,]b = newdouble[10,5]; Khi to gi tr cho cc phn t ca mng khi khai bo: double[] a = new double[2] {34.56, -45}; hoc double[] a = {34.56, -45}; string[] Tennuoc = {Anh, Php, c, Vit Nam}; int[,] a = {{4, 6, 9}, {5, 7, 9}, {12, 44, 23}}; 1.4.Hm chuyn i gia cc kiu d liu Bi ging C s lp trnh 2 24 Hm chuyn ii gi tr sang kiu Convert.ToBoolean(Giatri)Boolean Convert.ToByte(Giatri) Byte Convert.ToDateTime(Giatri) Date Convert.ToDouble(Giatri)Double Convert.ToInt16(Giatri) Integer 2 byte Convert.ToInt32(Giatri) Integer 4 byte Convert.ToInt64(Giatri) Integer 8 byte Convert.ToSingle(Giatri)Single Convert.ToString(Giatri) String Ch rng gi tr truyn cho hm phi hp l, ngha l phi thuc min gi tr ca kiu kt qu nu khng C# s bo li. V d:+ Convert.ToDateTime(25/04/79)tr v gi tr kiu ngy thng25/04/79 + Convert.ToInt32(25) = 25 + Convert.ToInt32(25a) hoc Convert.ToInt32(a25)s bo li. 2.Hp thoi thng bo MessageBox 2.1.Khi nim Hpthngbolhpthoicungcpthngtintngtcvingisdng,ngthi cng l ni hin th cc kt qu trung gian trong qu trnh tnh ton.Trongthigianhinthhpthngbo,C#ngngmihotngcabiumuvngi dng ch c th lm vic vi hp thng bo.2.2.Hp thng bo MessageBox MessageBox.Show(Ni dung thng bo, Tiu , Kiu chc nng, Kiu biu tng); Ch:Cphphpthngbokhngnhtthitphicybnthnhphntrn,ni dung cn thng bo v tiu ca hp thng bo c t trong cp du nhy kp. Kiu chc nng v kiu biu tng c cc gi tr nh sau: Bi ging C s lp trnh 2 25 Hng tng trngTh hin ngha Cc kiu chc nng: c bt u bi MessageBoxButtons .OK Ch hin th nt OK. .OKCancel Hin th cc nt OK v Cancel. .AbortRetryIgnore HinthccntAbort,Retryv Ignore. .YesNoCancel Hin th cc nt Yes, No v Cancel. .YesNo Hin th cc nt Yes, No. .RetryCancel Hin th cc nt Retry, Cancel. Cc kiu biu tng: c bt u bi MessageBoxIcon .Error hoc .Hand hoc .Stop Dng cho nhng thng bo li tht bi khi thi hnh mt vic no . .Question Dng cho nhng cu hi yu cu ngi dng chn la. .Exclamation hoc .Warning Dng cho cc thng bo ca chng trnh. .Asterisk hoc .Information Dngchoccthngbocungcpthmthngtincho ngi dng. .None Khng hin th biu tng. V d hin th hp thng bo Bn cha nhp d liu vi mt nt lnhOK v biu tng Information ta vit nh sau: MessageBox.Show("Bn cha nhp d liu", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information) Kt qu ta c: Ch : Trong khi chy chng trnh ta c th hin th gi tr hin thi ca mt bin bt k bng hp thng bo nh sau: int a= 5; MessageBox.Show(a.ToString());Bi ging C s lp trnh 2 26 Kt qu xut hin hp hi thoi sau: 2.3.Hm thng bo MessageBox Ngoi chc nng thng bo, hmMessageBoxcn tr v gi tr ca cc ntchc nng m ngi dng chn. C php ca hm MessageBox nh sau: MessageBox.Show(Ni dung thng bo, Tiu , Kiu chc nng, Kiu biu tng) = Gi tr tr v Trong gi tr tr v gm:System.Windows.Forms.DialogResult.OK System.Windows.Forms.DialogResult.Cancel System.Windows.Forms.DialogResult.Abort System.Windows.Forms.DialogResult.Retry System.Windows.Forms.DialogResult.Ignore System.Windows.Forms.DialogResult.Yes System.Windows.Forms.DialogResult.No V d, ta c th vit li code cho nt btnThoat vi yu cu ch thot khi ngi dng tr li c mun thot nh sau: private void btnThoat_Click(object sender, EventArgs e) { if (MessageBox.Show("Bn c mun thot khi chng trnh khng?", "Thng bo",MessageBoxButtons.YesNo, MessageBoxIcon.Question)==System.Windows.Forms.DialogResult.Yes) Application.Exit(); }3.Cc cu trc iu khin 3.1.Cu lnh la chn if Bi ging C s lp trnh 2 27 Dng 1:if (iukin) { Khi lnh; } Hot ng: Nu nhn gi tr ng th c thc hin. Dng 2: if (iu kin){ Khi lnh 1; } Else { Khi lnh 2; } Hot ng: Nu nhn gi tr ng th c thc hin, bbqua.Ngclinunhngitrsaithcthchin, b b qua. 3.2.Cu lnh la chn Case switch (Biu thc kim tra) { case : Khi lnh 1; break; case : Khi lnh 2; break; .. default: Khi lnh n+1; break; } Hot ng: my so snh gi tr ca vi gi tr ca cc . Nu c gi tr tha mn th c thc hin, sau Bi ging C s lp trnh 2 28 my s thot ngay ra khi cu lnh switch. Nu khng tha mn no th c thc hin. Ch:nuccbiuthckhcnhaucngthchinchungmtkhilnhthtacthvit gp nh sau: switch (Biu thc kim tra) { case : case : Khi lnh; break; .. default: Khi lnh n+1; break; } Bi tp 1. Xy dng chng trnh thc hin cc php ton theo giao din sau (cc php ton bao gm: +, - , *, /, %). Hnh 17. Giao din bi tp 1 Yu cu: + Nt thc hin c tc dng thc hin php ton i vi s A v s B, kt qu luvo kt qu. + Kt qu ch c tnh khi ngi dng nhp gi tr cho s A, B v php ton. + Php ton chia phi kim tra trng hp mu =0. + kt qu khng c php chnh sa d liu. Bi ging C s lp trnh 2 29 To d n mi v thit lp cc thuc tnh ca cc iu khin nh sau: iu khinThuc tnhGi tr Form1 NamefrmPheptoan FormBorderStyleFixed3D IconChn file nh c ui .ico bt k TextChuong trinh thuc hien cac phep toan Lable1TextS A Lable2TextS B Lable3TextPhp ton: Lable4TextKt qu: TextBox1NametxtSoA TextBox2NametxtSoB TextBox3NametxtPheptoan TextBox4NametxtKetqua Button1 NamebtnThuchien Text&Thuchien Button2 NamebtnLamlai Text&Lm li Button3 NamebtnThoat TextT&hot M lnh: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class frmPheptoan : Form { public frmPheptoan() { InitializeComponent(); } Bi ging C s lp trnh 2 30 private void Form1_Load(object sender, EventArgs e) { txtKetqua.Enabled = false; btnLamlai.Enabled = false; } private void btnThuchien_Click(object sender, EventArgs e) { int a, b, kq; if (txtSoA.Text == "") { MessageBox.Show("Bn phi nhp A", "Thng bo", MessageBoxButtons.OK,MessageBoxIcon.Information); txtSoA.Focus(); return; } if (txtSoB.Text == "") { MessageBox.Show("Bn phi nhp B", "Thng bo", MessageBoxButtons.OK,MessageBoxIcon.Information); txtSoB.Focus(); return; } a = Convert.ToInt16(txtSoA.Text); b = Convert.ToInt16(txtSoB.Text); switch (txtPheptoan.Text) { case "+": kq=a+b; txtKetqua.Text = kq.ToString(); break; case "-": kq=a-b; txtKetqua.Text = kq.ToString(); break; case "*": kq = a * b; txtKetqua.Text = kq.ToString(); break; case "/": if (txtSoB.Text == "0") { MessageBox.Show("Gi tr B phi khc 0!", "Thng Bo",MessageBoxButtons.OK, MessageBoxIcon.Error); txtSoB.Text = ""; txtSoB.Focus(); return; Bi ging C s lp trnh 2 31 } kq = a / b; txtKetqua.Text = kq.ToString(); break; case "%": kq = a % b; txtKetqua.Text = kq.ToString(); break; default: MessageBox.Show("Bn phi nhp li php ton", "Thng Bo",MessageBoxButtons.OK, MessageBoxIcon.Error); txtPheptoan.Text = ""; txtPheptoan.Focus(); return; } btnThuchien.Enabled = false; btnLamlai.Enabled = true; txtSoA.ReadOnly =true ; txtSoB.ReadOnly = true ; txtPheptoan.ReadOnly = true; } private void btnLamlai_Click(object sender, EventArgs e) { txtSoA.Text = ""; txtSoA.ReadOnly = false; txtSoB.Text =""; txtSoB.ReadOnly = false; txtPheptoan.Text = ""; txtPheptoan.ReadOnly = false; txtKetqua.Text = ""; btnThuchien.Enabled = true; txtSoA.Focus(); } private void btnThoat_Click(object sender, EventArgs e) { if (MessageBox.Show("Bn c mun thot khng?", "Thng bo",MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==System.Windows.Forms.DialogResult.Yes) Application.Exit(); } } } Bi ging C s lp trnh 2 32 3.3.Cu trc lp for Cho php thc hin lp i lp li mt on chng trnh nhiu ln, vi s ln lp xc nh. for (biu thc khi to; biu thc iu kin; biu thc cp nht) { Khi lnh; [break;] } Hotng:utinmythchinbiuthckhitokhitogitrcabiniu khin, sau my kim tra gi tr ca biu thc iu kin, nu biu thc ny ng th c thc hin vcp nht gi tr cabin iu khin thngqua biu thc cp nht. Sau quay li kim tra gi tr ca biu thc iu kin, c lp li nh vy cho n khi biu thc iu kin nhn gi tr sai th dng li. Ch : thot ngay ra khi vng lp for ta c th dng lnh break. V d:Dng vng lp for khi to cc gi tr ngu nhin trong khong (0, 100) cho mng mt chiu gm 10 phn t.M mt d n mi ri g on m sau vo ca s code. private void Form1_Load(object sender, EventArgs e) { int[] m = new int[10]; Random rnd = new Random(); for(int i = 0; i= a M mt d n mi ri g on m sau vo ca s code. private void Form1_Load(object sender, EventArgs e) { double a= 2; double T= 0; int n = 0; while (T='0') && (e.KeyChar b) chkMax.Text = "Max= " + a.ToString (); else chkMax.Text = "Max= " + b.ToString (); } else chkMax.Text = "Max"; txtNhapa.Enabled = false; txtNhapb.Enabled = false; } Ch:trongonmlnhtrnttcccthtc:rdoCong_Click,rdoTru_Click, rdoNhan_Click, rdoChia_Click, chkMax_Click, chkMin_Click u phi kim tra ngi dng nhpdliuvohaihpvnbntxtNhapAvtxtNhapB.khngphivitlionm lnh kim tra nhiu ln ta vit mt hm KiemtraAB nh sau: private bool KiemtraAB() { if (txtNhapa.Text == "") { MessageBox.Show("Bn phi nhp gi tr cho a", "Thngbo",MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapa.Focus(); return false; } if (txtNhapb.Text == "") { MessageBox.Show("Bn phi nhp gi tr cho b", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapb.Focus(); return false; } return true; } private void rdoCong_Click(object sender, EventArgs e) { int a, b; if (KiemtraAB() == false) { rdoCong.Checked = false; } else { a = Convert.ToInt32(txtNhapa.Text); b = Convert.ToInt32(txtNhapb.Text); txtKetqua.Text = Convert.ToString(a + b); txtNhapa.Enabled = false; txtNhapb.Enabled = false; } } Bi ging C s lp trnh 2 60 // Tng t vit m lnh cho cc th tc khc Bi tp 7. Lp chng trnh thc hin bi ton theo yu cu v giao din nh sau: Ch c php nhp gi tr s cho n gi v S lng, khng cho php nhp d liu vo Tng tin.NuGimgicchnthhinth2iukhingimgi5%v10%,ngcli khng hin th 2 iu khin ny. Hnh 25. Giao din bi tp 7 4.4.Hp danh sch ListBoxHpListBoxlmttphpccchuiktctrnhbydidnglitk thnh tng dng trong mt khung hnh ch nht. Ta c th chn, b sung hoc xo mt gi tr trong hp danh sch. Khi hin th d liu, nu chiu ngang ca Listbox nh hn di cc phn t th mt phn d liu s b che khut, cn nu s phn t ca Listbox vt qu chiu di ca Listbox th Listbox t ng cung cp thanh cun dc cun ti cc phn t pha di. 4.4.1.Thuc tnh NameTn hp ListBox, bt u bi tip u ng lst BackColorThit lp mu nn cho hp danh sch. DataSourceThit lp ngun d liu cho ListBox Bi ging C s lp trnh 2 61 EnabledNu Enabled = False hp danh sch s khng hot ng. FontXc lp kiu ch v c ch cho hp danh sch. ForeColorXc lp mu ch cho hp danh sch. MultiColumnMultiColumn=True:chophphinthdliutheonhiuct. MultiColumn = False: ch cho php hin th d liu theo 1 ct. ColumnWidthThit lp rng cho mi ct trong ListBox. ItemsKhi to gi tr cho cc phn t ca hp danh sch trong thi gian thit k. Khi chn thuc tnh Items trong ca s Properties, VB.NET m ra mt hp son tho cho php ngi lp trnh g vo gi tr cc phn t. Mi phn t c t trn mt dng ring bit, xung dng nhn Enter. Items.CountTr v tng s phn t ca danh sch trong thi gian thi hnh. Items[n]Tr v ni dung phn t th n ca danh sch trong thi gian thi hnh. SelectedItem hoc Text TngtnhthuctnhItems(n),nhngchcthtrvnidungca phn t hin hnh ang c chn. LockedLocked = True: kha khng cho php dch chuyn v tr ca hp danh sch trn Form, ngc li th nhn gi tr False. SelectedIndexTr v s th t ca phn t ang c chn trong danh sch, phn t u tincSelectedIndex=0,nukhngcphntnocchnth SelectedIndex = -1 SelectionModeQuynhchlachnccphnttronghpdanhschkhithcthi chng trnh. SelectionMode c 4 gi tr: None - khng cho php la chn cc phn t, One - cho php chn mt phn t, MultiSimple - cho php la chn nhiu phn t ring bit, MultiExtended - cho php chn mt khi cc phn t lin nhau. SelectedItemsTr v tp cc phn t ang c chn. SortedNu Sorted = True th cc phn t trong danh sch c sp xp theo th t ABC. TabIndexTh t truy cp khi ngi dng bm phm Tab. VisibleTrue: hin th hp danh sch, False: n hp danh sch. 4.4.2.S kin Clickc kch hot khi ngi dng kch chut vo hp danh sch. DoubleClickc kch hot khi ngi dng kch p chut vo hp danh sch. GotFocusc kch hot khi ngi dng chuyn tiu im ti hp danh sch. LostFocusc kch hot khi hp danh sch mt tiu im. Bi ging C s lp trnh 2 62 SelectedIndex_Changed ckchhotkhingidngthayitrngthilachnccdngd liu trong hp vnbn. 4.4.3.Phng thc Add:dngbsungmtphntchohpdanhschtrongthigianthihnhvthng c vit trong th tc Form_Load. C php ca phng thc ny l: ListName.Items.Add(Item); TrongListNameltncahpdanhsch,Itemlnidungcaphnttamunthm vo hp danh sch.V d, b sung phn t c gi tr Ha Noi vo hp danh sch lstQue ta thc hin nh sau:lstQue.Items.Add(Ha Noi); Remove: dng loi b mt phn t ca hp danh sch theo ni dung trong thi gian thi hnh. C php ca phng thc ny l: ListName.Items.Remove(Item);V d, xa phn t c gi tr Ha Noi trong hp danh sch lstQue ta vit nh sau: lstQue.Items.Remove(Ha Noi); RemoveAt:dng loi bmt phn t ca hp danh sch theo ch s trong thi gian thi hnh. C php ca phng thc ny l: ListName.Items.RemoveAt(Index); V d, xa phn t v tr 1 trong hp danh sch lstQue ta vit nh sau: lstQue.Items.RemoveAt(1); Clear:dngloibttcccphntcahpdanhschtrongthigianthihnh.C php ca phng thc ny l: ListName.Items.Clear(); V d, xa tt c cc phn t trong hp danh sch lstQue ta vit nh sau:lstQue.Items.Clear(); Bi tp 8. Vit chng trnh minh ho cc thao tc trn hp Listbox theo yu cu sau: Bi ging C s lp trnh 2 63 NhpmttnncvohpvnbnNhptnnc,chnntThmmithm nc vo hp danh sch, chn nt Tm kim xem nc c trong hp danh sch cha? Chn nt Xa xo mt tn nc bt k c chn t hp danh sch. Chn nt Thot thot khi chng trnh. Hnh 26. Giao din bi tp 8 Vo Microsoft Visual Studio 2010 to mt d n mi v thit lp cc thuc tnh ca cc iu khin nh sau: iu khinThuc tnhGi tr Form1 NamefrmTennuoc FormBorderStyleFixed3D IconChn file nh c ui .ico bt k TextChuong trinh minh hoa Listbox Lable1TextNhp tn nc Lable2TextDanh sch cc ncTextBox1NametxtNuoc ListBox1NamelstNuoc Button1 NamebtnThemmoi Text&Thm mi Button2 NamebtnXoa Text&Xa Button3NamebtnTimkiem Bi ging C s lp trnh 2 64 TextTm &kim Button4 NamebtnThoat TextT&hot Vit Code: m ca s son tho Code v vit cc on m lnh nh sau: private void Form1_Load(object sender, EventArgs e) { txtNuoc.Focus(); btnTimkiem.Enabled = false; btnXoa.Enabled = false; } private void btnThemmoi_Click(object sender, EventArgs e) { if (txtNuoc.Text == "") { MessageBox.Show("Bn phi nhp tn nc", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); txtNuoc.Focus(); return; } lstNuoc.Items.Add(txtNuoc.Text); txtNuoc.Text = ""; txtNuoc.Focus(); btnXoa.Enabled = true; btnTimkiem.Enabled = true; } private void btnXoa_Click(object sender, EventArgs e) { if (lstNuoc.Items.Count == 0) { MessageBox.Show("Khng cn phn t no xo", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); btnXoa.Enabled = false; btnTimkiem.Enabled = false; return; } if (lstNuoc.SelectedIndex == -1) { MessageBox.Show("Bn phi chn mt nc xo", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); Return; } if (MessageBox.Show("Bn c mun xo khng?", "Thng bo",MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) lstNuoc.Items.RemoveAt(lstNuoc.SelectedIndex); } private void btnTimkiem_Click(object sender, EventArgs e) { int i, index, d =0; if (lstNuoc.Items.Count == 0) Bi ging C s lp trnh 2 65 { MessageBox.Show("Khng cn phn t no tm kim", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); btnXoa.Enabled = false; btnTimkiem.Enabled = false; return; } if (txtNuoc.Text == "") { MessageBox.Show("Bn phi nhp tn nc tm kim", "Thng bo",MessageBoxButtons.OK, MessageBoxIcon.Information); txtNuoc.Focus(); return; } for (i = 0; i