Giáo trình C Căn Bản

Embed Size (px)

DESCRIPTION

Giáo Trình C căn bản

Citation preview

  • Bi ging C s lp trnh 2 1

    Mc lc

    CHNG 1. LM QUEN VI VISUAL STUDIO 2010 ................................................. 5

    1. Gii thiu Visual Studio.NET 2010 ......................................................................... 5

    1.1. Tnh hnh trc khi Visual Studio.NET ra i .................................................. 5

    1.2. S ra i ca Visual Studio.NET ...................................................................... 5

    1.3. Tng quan v Visual Studio.NET ..................................................................... 6

    2. Khi ng Visual C# 2010 v giao din ................................................................... 7

    CHNG 2. VIT CHNG TRNH U TIN ........................................................ 16

    1. bi ...................................................................................................................... 16

    3. M n mi .......................................................................................................... 16

    4. Thit k giao din ................................................................................................... 16

    4.1. t tn v tiu cho form ............................................................................. 16

    4.2. Thm iu khin hp vn bn Textbox ........................................................... 17

    4.3. Thm iu khin nt lnh Button .................................................................... 17

    5. Vit code ................................................................................................................. 18

    5.1. Vit code cho nt lnh btnDisplay .................................................................. 18

    5.2. Vit code cho nt lnh btnClear ...................................................................... 20

    5.3. Vit code cho nt lnh btnExit ........................................................................ 20

    6. Lu n ................................................................................................................ 20

    7. Cc tp tin ca n ............................................................................................... 20

    8. Chy chng trnh .................................................................................................. 21

    9. Dng chng trnh .................................................................................................. 21

    10. M n c ....................................................................................................... 21

    11. Thot khi Visual C# 2010 ..................................................................................... 21

    CHNG 3. D LIU V CU TRC IU KHIN ................................................ 22

    1. Bin, hng v cc kiu d liu ................................................................................ 22

    1.1. Bin.................................................................................................................. 22

    1.2. Hng ................................................................................................................ 23

    1.3. Cc kiu d liu ............................................................................................... 23

    1.4. Hm chuyn i gia cc kiu d liu ............................................................ 27

  • Bi ging C s lp trnh 2 2

    2. Hp thoi thng bo MessageBox ....................................................................... 28

    2.1. Khi nim ........................................................................................................ 28

    2.2. Hp thng bo MessageBox............................................................................ 28

    2.3. Hm thng bo MessageBox ........................................................................... 30

    3. Cc cu trc iu khin ........................................................................................... 30

    3.1. Cu lnh la chn if ........................................................................................ 30

    3.2. Cu lnh la chn Case ................................................................................... 31

    Bi tp 1. ..................................................................................................................... 32

    3.3. Cu trc lp for ................................................................................................ 36

    3.4. Cu trc lp while ............................................................................................ 36

    3.5. Cu trc lp do ................................................................................................ 37

    3.6. Cu lnh trycatch ......................................................................................... 38

    4. Hm ......................................................................................................................... 39

    4.1. Hm c mt gi tr tr v ................................................................................. 39

    4.2. Hm khng c gi tr tr v ............................................................................. 40

    4.3. Cch gi hm ................................................................................................... 40

    4.4. V d minh ha ................................................................................................ 41

    5. G ri chng trnh ................................................................................................ 42

    5.1. Mt s gii php gim li ................................................................................ 42

    CHNG 4. TM HIU CC IU KHIN C BN ................................................. 43

    1. Tm hiu thuc tnh, phng thc v s kin ......................................................... 43

    2. Mi quan h gia thuc tnh, phng thc v s kin ........................................... 43

    3. Thuc tnh, phng thc, s kin ca mt s iu khin c bn ........................... 44

    3.1. Form ................................................................................................................ 44

    3.2. Hp vn bn - TextBox ................................................................................... 46

    3.3. Nt lnh Button ............................................................................................ 48

    3.4. Nhn Lable ................................................................................................... 49

    3.5. Dng mch nc - ToolTip ............................................................................. 49

    3.6. Bi tp .............................................................................................................. 50

    Bi tp 2. ..................................................................................................................... 50

  • Bi ging C s lp trnh 2 3

    Bi tp 3. ..................................................................................................................... 53

    Bi tp 4. ..................................................................................................................... 54

    Bi tp 5. ..................................................................................................................... 55

    4. Mt s iu khin c bn khc ............................................................................... 57

    4.1. Nhm GroupBox .......................................................................................... 57

    4.2. Hp nh du CheckBox .............................................................................. 58

    4.3. Nt tu chn RadioButton ............................................................................ 59

    Bi tp 6. ..................................................................................................................... 60

    Bi tp 7. ..................................................................................................................... 64

    4.4. Hp danh sch ListBox ................................................................................ 65

    Bi tp 8. ..................................................................................................................... 67

    Bi tp 9. ..................................................................................................................... 69

    4.5. Hp la chn ComboBox ............................................................................. 71

    Bi tp 10. ................................................................................................................... 73

    Bi tp 11. ................................................................................................................... 74

    Bi tp 12. ................................................................................................................... 74

    Bi tp 13. ................................................................................................................... 75

    4.6. iu khin CheckedListBox ........................................................................... 77

    Bi tp 14. ................................................................................................................... 77

    4.7. iu khin NumericUpDown .......................................................................... 79

    Bi tp 15. ................................................................................................................... 79

    4.8. Thanh cun HScrollBar v VScrollBar ........................................................... 81

    Bi tp 16. ................................................................................................................... 82

    4.9. iu khin Timer ............................................................................................. 83

    Bi tp 17. ................................................................................................................... 83

    Bi tp 18. ................................................................................................................... 86

    4.10. iu khin RichTextBox ................................................................................. 87

    CHNG 5. CC HP THOI THNG DNG .......................................................... 88

    1. Hp hi thoi Open File.......................................................................................... 88

    Bi tp 19. ................................................................................................................... 88

  • Bi ging C s lp trnh 2 4

    2. Hp thoi SaveFile v lung FileStream ................................................................ 90

    2.1. Hp thoi SaveFile .......................................................................................... 90

    2.2. Lung FileStream ............................................................................................ 90

    Bi tp 20. ................................................................................................................... 91

    3. Hp thoi Color ...................................................................................................... 92

    Bi tp 21. ................................................................................................................... 93

    4. Hp thoi Font ........................................................................................................ 94

    Bi tp 22. ................................................................................................................... 94

    Bi tp 23. ................................................................................................................... 95

    CHNG 6. MENU V N NHIU BIU MU .................................................. 97

    1. Menu - MenuStrip ................................................................................................... 97

    1.1. Thuc tnh ........................................................................................................ 97

    1.2. S kin ............................................................................................................. 98

    Bi tp 24. ................................................................................................................... 98

    2. Popup menu - ContextMenuStrip ........................................................................... 99

    Bi tp 25. ................................................................................................................... 99

    3. n nhiu biu mu ........................................................................................... 101

    3.1. B sung biu mu .......................................................................................... 101

    Bi tp 26. ................................................................................................................. 102

    3.2. Biu mu khi ng ...................................................................................... 102

    3.3. Gi biu mu ................................................................................................. 103

    3.4. ng biu mu .............................................................................................. 103

    3.5. Xo biu mu ................................................................................................. 103

    Bi tp 27. ................................................................................................................. 104

    Bi tp 28. ................................................................................................................. 104

    Bi tp 29. ................................................................................................................. 105

  • Bi ging C s lp trnh 2 5

    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

    Vi s pht trin lin tc v a dng ca th gii cng ngh thng tin ngy nay, cc phn mm, cc h iu hnh, cc mi trng pht trin v cc ng dng lin tc ra i. 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.

    Trong gii pht trin ng dng trn Internet ta c th s dng cc ngn ng Java, PHP, ASP Khi Java mi c Sun Corporation gii thiu n c mt sc mnh ng k v hng ti vic chy trn nhiu h iu hnh khc 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.

    lm gim kh nng nh hng ca Java, bn hng Microsoft cng cung cp ngn ng ASP - chuyn dng vit cc ng dng trn Web. Trong cc trang ASP va cha th HTML va cha cc on script (VBScript, JavaScript). Trong qu trnh x l mt trang 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. Tuy nhin, v l do bo mt nn cc Admin ca cc trang Web 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, Visual Basic y l mt s cng c ph bin v mnh. Trong Visual C++ l mt ngn ng rt mnh nhng cng rt kh s dng. Visual Basic th n gin d hc, d dng nht nn rt thng dng nhng hn ch l Visual Basic khng phi ngn ng hng 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

    u nm 1998, sau khi hon tt phin bn Version 4 ca Internet Information Server -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 6

    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 Framework nng cp thm mt 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 ta ch cn ci .NET Framework 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 t nh mt phn mc nh ca Windows. Song song , mi trng pht trin Visual 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 so vi nn .NET Framwork 1.1 trc . Ngay sau Microsoft cng b phin bn Windows Vista, v ton b Windows l .NET, tt c cc hm API li trong nhng phin bn Windows trc y u c thay th bng cc hm hay th vin .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 lp trnh khc nhau nh Visual C++.NET, Visual C#.NET, Visual J#.NET, Visual Basic.NET trong cng mt mi trng pht trin IDE thng nht trn kin trc .NET Framework.

    Framework l thnh phn quan trng nht, l ct li v tinh hoa ca mi trng .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 d nh Notepad vit m lnh v s dng command line bin dch v thc thi ng 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 Visual Studio.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 7

    2. Khi ng Visual C# 2010 v giao din

    Vo Start/Programs/Microsoft Visual Studio 2010/Microsoft Visual Studio 2010, 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.

    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 8

    Hnh 2. Ca s New Project

    Chn 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 9

    Kt qu xut hin ca s mi trng pht trin tch hp IDE, vi giao din v cc thnh phn c bn nh sau:

    Hnh 4. Mi trng pht trin tch hp IDE

    Title Bar: Thanh tiu cha tn n.

    Menu Bar: Thanh Menu cha y cc cng c cn pht trin, thc thi 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 10

    - Hp cng c - Toolbox

    - Thanh cng c - Toolbars

    - Ca s thuc tnh - Properties Window

    Project: cho php b sung cc i tng khc nhau vo n nh: cc form, 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

    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.

    Visual C# 2010 c ti 39 thanh cng c khc nhau nh: Standard, Formatting, Debug, Build... V d hnh nh thanh cng c Standard:

    Hnh 5. Thanh cng c Standard

    gi cc thanh cng c ta vo View/Toolbars khi s xut hin danh sch tt c cc thanh cng c. Mun n/hin thanh cng c no ta kch chn ti dng cha tn thanh cng c .

    Toolbox: l hp cng c cha cc iu khin controls c t ln Form khi thit k giao din ngi dng.

    hin th hp cng c ta thc hin mt trong cc cch sau:

    Vo View/Toolbox

    Bm t hp phm Ctrl+W+X

    Kch chut ti biu tng Toolbox trn thanh cng c Standard.

  • Bi ging C s lp trnh 2 11

    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 12

    Trong mi tab ca hp Toolbox cha danh sch cc loi iu khin khc nhau, cc iu 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 vic 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 13

    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

    Solution Explorer: ca s gii php - y l phn ca s gip ta qun l tt c cc ti 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 Explorer

    Bm 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 14

    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

    View Designer: c tc dng hin th ca s thit k giao din ca Form ang c chn. 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 15

    Bm phm tt Shift+F7.

    Properties Window: ca s ny lit k tt c cc thuc tnh, s kin ca cc iu khin trong form.

    Mun hin th thuc tnh ca i tng no ta kch chut chn i tng trong ca s 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 ti ca s Properties trong lc thit k, hoc thay i bng m lnh trong lc thi hnh 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 16

    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.

    Chn ngn ng Visual C# v ng dng Windows, t tn cho n ti mc Name l Welcome ri chn OK.

    4. Thit k giao din

    4.1. t tn v tiu cho form

  • Bi ging C s lp trnh 2 17

    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

    Kch chut vo biu tng trn hp cng c Toolbox, gi v ko chut t 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.

    Khi mi xut hin trn Form hp Textbox c tn mc nh l TextBox1, ta thay i gi tr ny bng cch kch chut chn iu khin TextBox1, ti ca s Properties 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 18

    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:

    Kch chut vo nt lnh 1, trong ca s Properties sa thuc tnh Name l 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 nn t tn iu khin tng ng vi chc nng ca n v c tip u ng ch loi iu 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.

    G vo gia th tc btnDisplay_Click dng lnh gn gi tr Welcome to Visual C# 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 19

    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.

    i s e c kiu EventArgs cha cc thng tin v s kin nh: v tr chut, thi gian pht sinh s kin

    Ta c cu trc chung gn gi tr cho thuc tnh ca mt iu khin khi vit m lnh nh sau:

    . = ;

    Cc thuc tnh ca cc iu khin trong C# rt phong ph, C# cung cp tin ch Intellisence t ng hin th mt danh sch cc thuc tnh ca iu khin 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 20

    Trong mi trng son tho, nu g sai c php th C# s bt li ngay bng cch hin th mt 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: y l tp tin d n (project file) ca C#, mi tp tin d n gm mt hoc 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 21

    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:

    M th mc cha n, v d th mc Welcome trong ng dn D:\, kch p vo tp tin Welcome.sln m n Welcome.

    M mi trng Microsoft Visual Studio 2010, trong ca s Start Page kch chn n cn m trong mc Recent Projects (nu c).

    M mi trng Microsoft Visual Studio 2010, vo File/Open Project, chn ng 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 22

    CHNG 3.

    D LIU V CU TRC IU KHIN

    1. Bin, hng v cc kiu d liu

    1.1. Bin

    Bin l mt i lng dng cha d liu tm thi trong qu trnh tnh ton. Tt c cc bin c s dng trong chng trnh u phi c khai bo ngay t u, 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 phn nh ngha lp ca Form th l bin ton cc c tc dng trong ton b cc on m 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: l mt chui cc k t do ngi lp trnh t t bao gm cc ch ci, ch s v 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 23

    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;

    long b=10L;

    float c =19.34F;

    double d=19.34;

    Cc php ton s hc:

    Cng: +,+=

    Tr: -, -=

    Nhn: *, *=

    Chia:/, /=. Ta c int/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 24

    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 dng ng hoc sai.

    Ln hn: >

    Nh hn: <

    Ln hn hoc bng: >=

    Nh hn hoc bng:

  • Bi ging C s lp trnh 2 25

    +: ton t ghp chui.

    V d: H Ni + ma thu cho kt qu H Ni ma thu

    s.Length: tr v chiu di ca chui s.

    V d: Lm Anh.Length c kt qu = 7

    s.Replace(str1,str2): thay th chui str1 trong chui s bng chui str2.

    V d: H Ni.Replace(Ni, Ty) cho kt qu H Ty

    s.Substring(vt,n): tr v mt chui con gm n k t trong chui s, bt u t k t v tr vt. (Chui c tnh t v tr 0).

    V d: "Hoa hng ".Substring(1, 2) cho kt qu oa

    s.Insert(vt,str): chn thm gi tr ca chui str vo chui s ti v tr vt.

    V d: "Tri xanh". Insert(4, " mu") cho kt qu Tri mu xanh

    s.ToLower: bin i chui s v ch in thng.

    V d: H Ni.ToLower cho kt qu h ni

    s.ToUpper: bin i chui s v ch in hoa.

    V d: H Ni.ToUpper c kt qu H NI

    s.Remove(vt,n): xa n k t trong chui s, bt u t k t v tr vt.

    V d: "Hoa hng".Remove(1, 2) cho kt qu H hng

    s.TrimStart: xa cc k t rng u chui s.

    V d: " Hoa hng ".TrimStart cho kt qu "Hoa hng "

    s.TrimEnd: xa cc k t rng cui chui s.

    V d: " Hoa hng ".TrimEnd cho kt qu " Hoa hng"

    s.Trim: xa cc k t rng u v cui chui s.

    V d: " Hoa hng ".Trim cho kt qu "Hoa hng"

    s.Split(ch): tch chui s thnh cc chui con ngn cch nhau bi k t ch.

    V d: string s = "Ha Noi";

    string[] tu=s.Split( );

    Kt qu: tu[0]= "Ha", tu[1]= "Noi"

  • Bi ging C s lp trnh 2 26

    1.3.4. Kiu logic bool

    Kiu bool l kiu d liu ch nhn mt trong hai gi tr true/false.

    Cc php ton trn kiu d liu bool

    Php ton V &&: xt biu thc A && B ch nhn gi tr ng khi v ch khi c A v B cng nhn gi tr ng, cn nhn gi tr sai trong tt c cc trng hp cn li

    Php ton Hoc ||: xt biu thc A || B ch nhn gi tr sai khi v ch khi c A v B cng nhn gi tr sai, cn nhn gi tr ng trong tt c cc trng hp cn li.

    Php ton Ph nh !: ta c !A nhn gi tr ng khi A nhn gi tr sai v ngc li.

    Bng gi tr chn l ca cc php ton:

    A B A && B A || B A !A

    True True True True False True

    True False False True True False

    False True False True

    False False False False

    1.3.5. Kiu ngy thng DateTime

    V d khai bo bin ngy thng:

    DateTime d;

    d = DateTime.Now;

    Cc php ton trn kiu d liu DateTime

    DateTime.Now: tr v ngy v gi hin hnh, v d: 09/02/2009 5:20:28PM

    Date.Day: tr v gi tr ngy ca Date, v d: d.Day cho kt qu 09

    Date.Month: tr v gi tr thng ca Date, v d:d.Month cho kt qu 02

    Date.Year: tr v gi tr nm ca Date, v d: d.Year cho kt qu 2009

    Date.AddDays(n): tr v mt ngy mi cch ngy Date n ngy.

    Date.AddMonths(n): tr v mt ngy mi cch ngy Date n thng.

    Date.AddYears(n): tr v mt ngy mi cch ngy Date n nm.

  • Bi ging C s lp trnh 2 27

    1.3.6. Kiu d liu ngu nhin

    C# cung cp kiu d liu Random cho php sinh cc s ngu nhin. V d khai bo bin ngu nhin:

    Random rnd;

    Cc php ton trn kiu d liu ngu nhin

    new Random(): khi to b s ngu nhin. V d: rnd=new Random();

    rnd.NextDouble(): tr v mt s thc ngu nhin trong khong t 0 n 1.

    rnd.Next(): tr v mt s nguyn c gi tr bt k.

    rnd.Next(n,m): tr v mt s nguyn c gi tr bt k trong khong t n ti m (n>=0).

    1.3.7. Kiu d liu mng

    Mng l mt tp hp cc bin c cng tn v cng kiu d liu. Dng mng lm chng 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 = new int[10] ;

    Khai bo mng 2 chiu thc b gm 10 hng, 5 ct

    double[,] b = new double[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 28

    Hm chuyn i i 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 thng 25/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

    Hp thng bo l hp thoi cung cp thng tin tng tc vi ngi s dng, ng thi cng l ni hin th cc kt qu trung gian trong qu trnh tnh ton.

    Trong thi gian hin th hp thng bo, C# ngng mi hot ng ca biu mu v ngi 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 : C php hp thng bo khng nht thit phi c y bn thnh phn trn, 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 29

    Hng tng trng Th 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

    Hin th cc nt Abort, Retry v 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

    Dng cho cc thng bo cung cp thm thng tin cho ngi dng.

    .None Khng hin th biu tng.

    V d hin th hp thng bo Bn cha nhp d liu vi mt nt lnh OK 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 30

    Kt qu xut hin hp hi thoi sau:

    2.3. Hm thng bo MessageBox

    Ngoi chc nng thng bo, hm MessageBox cn tr v gi tr ca cc nt chc 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 31

    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, b b qua. Ngc li nu nhn gi tr sai th c thc hin, 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 my s thot ngay ra khi cu lnh switch.

    Nu khng tha mn no th c thc hin.

  • Bi ging C s lp trnh 2 32

    Ch : nu cc biu thc khc nhau cng thc hin chung mt khi lnh th ta c th vit 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 lu vo 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.

    To d n mi v thit lp cc thuc tnh ca cc iu khin nh sau:

  • Bi ging C s lp trnh 2 33

    iu khin Thuc tnh Gi tr

    Form1

    Name frmPheptoan

    FormBorderStyle Fixed3D

    Icon Chn file nh c ui .ico bt k

    Text Chuong trinh thuc hien cac phep toan

    Lable1 Text S A

    Lable2 Text S B

    Lable3 Text Php ton:

    Lable4 Text Kt qu:

    TextBox1 Name txtSoA

    TextBox2 Name txtSoB

    TextBox3 Name txtPheptoan

    TextBox4 Name txtKetqua

    Button1 Name btnThuchien

    Text &Thuchien

    Button2 Name btnLamlai

    Text &Lm li

    Button3 Name btnThoat

    Text T&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(); } private void Form1_Load(object sender, EventArgs e)

  • Bi ging C s lp trnh 2 34

    { 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 = "";

  • Bi ging C s lp trnh 2 35

    txtSoB.Focus();

    return;

    } 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 36

    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;]

    }

    Hot ng: u tin my thc hin biu thc khi to khi to gi tr ca bin iu khin, sau my kim tra gi tr ca biu thc iu kin, nu biu thc ny ng th c thc hin v cp nht gi tr ca bin iu khin thng qua 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

  • Bi ging C s lp trnh 2 37

    Hot ng: u tin my kim tra gi tr ca , nu biu thc ny nhn gi tr ng th c thc hin. Sau li quay li kim tra gi tr ca , c lp li nh vy cho n khi nhn gi tr sai th dng li.

    Ch : + V c kim tra trc, nn c th khng c thc hin ln no nu ngay t u nhn gi tr sai v trc

    khi thc hin khi lnh phi khi gn gi tr cho .

    + Trong phi c t nht mt lnh lm thay i gi tr ca n mt lc no nhn gi tr sai, nhm dng vng lp li, nu khng n s lp mi khng dng.

    V d: Nhp s thc a, tm s t nhin n nh nht sao cho tng: T = 1+1/2++1/n >= 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

  • Bi ging C s lp trnh 2 38

    Ch : + V c kim tra sau, nn lun c thc hin t nht 1 ln.

    + Trong phi c t nht mt lnh lm thay i gi tr ca nhm dng vng lp li.

    V d: Tnh tng T = 1 + 2 + + 10

    M mt d n mi ri g on m sau vo ca s code.

    private void Form1_Load(object sender, EventArgs e) { int T = 0; int i = 1; do { T = T + i; i = i + 1; } while (i

  • Bi ging C s lp trnh 2 39

    Khi try cha ng on m cn phi thc thi trong chng trnh, nhng on m ny c th gp phi mt vi trng thi li.

    Khi catch cha ng on m gii quyt nhng nhng li xy ra trong try, tham s ca catch l cc lp bt li. C# c rt nhiu lp bt li, trong System.Exception l lp mc cao nht c th bt c mi loi li xy ra trong try.

    Khi finally cha ng on m dn dp ti nguyn hoc bt k hnh ng no bn mun thc hin sau khi try hay catch, khi ny c th c hoc khng.

    Hot ng: u tin chng trnh thc thi cc cu lnh trong khi try, nu khng xut hin li th cc cu lnh c thc hin bnh thng sau s nhy n thc hin cc cu lnh trong khi finally, tuy nhin nu xut hin li trong khi try th chng trnh s t ng nhy ngay ti thc thi cc cu lnh trong khi catch m khng t ngt dng chng trnh v sau cng thc hin cc cu lnh trong khi finally.

    Ch : C# khng cho php t lnh return bn trong khi finally.

    V d: By li on chng trnh tnh tng 2 s nguyn a v b trong trng hp khng nhp d liu dng s.

    private void bntTong_Click(object sender, EventArgs e) { try { txtTong.Text = Convert.ToString(Convert.ToInt32(txtSoA.Text)

    + Convert.ToInt32(txtSoB.Text)); } catch (System.Exception ex) { MessageBox.Show(ex.ToString());

    //MessageBox.Show("Bn phi nhp d liu s!"); } }

    4. Hm

    4.1. Hm c mt gi tr tr v

    C php xy dng:

    public|private Kiudliutrv ([Tham s]) {

    Khai bo cc bin cc b;

    Kiudliutrv BinTG;

  • Bi ging C s lp trnh 2 40

    Tnh ton kt qu thng qua BinTG;

    return BinTG; }

    Khi xy dng hm c gi tr tr v ta thng khai bo thm mt bin trung gian c kiu trng vi kiu d liu tr v v cng thc tnh ton s c tnh thng qua bin trung gian ny. Gi tr ca bin trung gian s c gn vo cho tn hm thng qua lnh return.

    Lnh return c th c t ti v tr bt k, khi gp lnh return chng trnh gn gi tr ca bin i k m sau lnh return cho tn hm v thot ngay ra khi hm.

    4.2. Hm khng c gi tr tr v

    C php xy dng:

    public|private void ([Tham s]) {

    Cc dng lnh; }

    4.3. Cch gi hm

    Hm c gi tr tr v: c s dng nh mt thnh phn ca biu thc, iu c ngha n c th c dng trong lnh gn v trong cc biu thc so snh.

    Bin = ([Tham s]);

    V d, nu ta c hm: private double MyFunction(int a, int b)

    Th ta gi hm nh sau: x = MyFunction(n, m);

    Trong x l bin c kiu double, n v m l hai bin int tng ng vi a v b.

    Hm khng c gi tr tr v: c dng nh mt cu lnh c lp, n khng c dng trong lnh gn hoc trong cc biu thc so snh.

    ([Tham s]);

    Gi s ta c hm: private void MySub(int a, int b)

    Khi hm c gi nh sau: MySub (a, b);

    Ch : Cc tham s khi xy dng hm c gi l tham s hnh thc, cc tham s khi s dng hm gi l tham s thc s, hai loi tham s ny phi tng ng nhau v: s lng, th t v kiu d liu.

  • Bi ging C s lp trnh 2 41

    4.4. V d minh ha

    Vit v thc hin hm tnh k! v hm by li chia cho 0. M mt d n mi ri g on m sau vo ca s code.

    namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } double a;

    private double Giaithua(int k ) { double gt; int i; gt = 1; for(i=1;i

  • Bi ging C s lp trnh 2 42

    5. G ri chng trnh

    trong nhng giai on u lp trnh cc chng trnh khng trnh khi c sai st v mc li, tuy nhin ta c th gim kh nng mc li n mc ti thiu.

    5.1. Mt s gii php gim li

    Thit k cn thn, ghi ch cc vn quan trng v cch gii quyt cho tng phn. Ghi ch tng th tc v mc ch ca n.

    Ch thch r rng trong chng trnh (trong C# dng ch thch c bt u bi 2 du gch cho //).

    t ch thch cho cc dng lnh, ta c th g 2 du gch cho // ti v tr cn t

    ch thch, hoc bi en cc dng lnh ri kch chn biu tng trn thanh cng c Standard. xa du ch thch cc dng lnh, ta c th xa 2 du gch cho // hoc

    bi en cc dng lnh mun xa du ch thch ri kch chn biu tng trn thanh cng c Standard.

    Dng ca s danh sch cc thuc tnh, cc phng thc, cc hng s, cc lp i tng trong C# trnh vic g sai tn thuc tnh, phng thc

    gi ca s ny, trong ca s son tho code bm t hp phm Ctrl+J, kt qu khi ngi dng g cc k t bt k, con tr s t ng cun ti dng u tin cha cc k t cho ngi dng chn.

    Hnh 18. Ca s danh sch thuc tnh, phng thc, s kin.

    S dng cu lnh trycatch bt cc li ngoi l ca chng trnh.

  • Bi ging C s lp trnh 2 43

    CHNG 4.

    TM HIU CC IU KHIN C BN

    1. Tm hiu thuc tnh, phng thc v s kin

    Mi mt i tng trong C# u c 3 c tnh l Thuc tnh - Properties, Phng thc - Methods v S kin Events. Trong :

    Properties: l tp hp cc thuc tnh m t mt i tng nh: tn, chiu cao, chiu rng, mu ch, mu nn Cc thuc tnh c th xc nh trong khi thit k (Design time) hoc trong lc thi hnh (Run time).

    Methodes: l nhng on chng trnh cha trong iu khin, cho iu khin bit cch thc thc hin mt cng vic no , chng hn lm n s xut hin ca mt iu khin (phng thc Hide).

    Evens: nu thuc tnh m t i tng, phng thc ch ra cch thc i tng hnh ng th s kin l nhng phn ng ca i tng. Khi to mt chng trnh trong C#, ta lp trnh ch yu theo s kin, lp trnh theo cch ny c ngha l ta phi bit khi no s kin xy ra v lm g khi s kin xy ra? iu ny c ngha l chng trnh ch thi hnh khi ngi dng thc hin mt thao tc no trn giao din.

    2. Mi quan h gia thuc tnh, phng thc v s kin

    Mc d thuc tnh, phng thc v s kin c vai tr khc nhau nhng chng thng xuyn lin h vi nhau. V d, nu ta di chuyn mt iu khin bng phng thc Move th mt s thuc tnh nh Top, Height, Left, Width s thay i theo theo, khi kch c ca iu khin thay i tc l s kin Resize xy ra.

    Ph thuc ln nhau cn c ngha l ta c th thc hin mt cng vic bng nhiu cch: x l trn thuc tnh hoc x l bng phng thc.

    V d: ta c 2 cch lm hp vn bn textBox1 xut hin v bin mt trn mn hnh:

    Thc hin bng thuc tnh:

    Xut hin: textBox1.Visible = true; Bin mt: textBox1.Visible = false;

    Thc hin bng phng thc:

    Xut hin: textBox1.Show();

  • Bi ging C s lp trnh 2 44

    Bin mt: textBox1.Hide();

    3. Thuc tnh, phng thc, s kin ca mt s iu khin c bn

    3.1. Form

    3.1.1. Thuc tnh

    Name Tn form, bt u bi tip u ng frm

    BackColor Thit lp mu nn cho Form.

    BackgroundImage Thit lp nh nn cho Form.

    BackgroundImageLayout Thit lp ch hin th nh nn trn Form. Tile: hin th nh t trn xung, Center: hin th nh t gia ra, Stretch: dn u nh trn Form.

    AcceptButton Thit lp nt lnh Accept. S kin Click ca nt lnh ny c gi bt c khi no ngi dng bm phm Enter.

    CancelButton Thit lp nt lnh Cancel. S kin Click ca nt lnh ny c gi bt c khi no ngi dng bm phm Esc.

    Cursor Thit lp ch hin th con tr trn Form.

    Enabled Nu nhn gi tr True th cho php ngi dng tc ng ln Form, ngc li th nhn gi tr False.

    Font Thit lp kiu ch, c ch cho cc iu khin trn Form.

    ForeColor Thit lp mu ch cho cc iu khin trn Form.

    FormBorderStyle Thit lp kiu ng vin cho Form. Fixed Single: khng th thay i kch thc ca Form, Sizable: c th phng to thu nh v thay i kch thc ca Form, Sizable ToolWindow: c th thay i kch thc ca Form

    Icon Thit lp biu tng cho Form (cc tp nh c ui .ico).

    MainMenuStrip Gn kt Form vi Menu.

    Opacity Thit lp trong sut cho nn ca Form, nu trong sut < 100% th c th nhn xuyn thu nhng g nm bn di Form.

    ShowIcon Nu nhn gi tr True th cho php hin th biu tng c thit lp thuc tnh Icon, ngc li th nhn gi tr False.

    StartPosition Thit lp v tr xut hin ca Form trn mn hnh. Manual: xut hin gc trn bn tri mn hnh, CenterScreen: gia mn hnh

    Text Thit lp dng tiu ca Form.

    Window State Thit lp trng thi ca Form khi chy chng trnh. Normal: hin th Form ng theo kch c thit k, Maximized: phng to Form

  • Bi ging C s lp trnh 2 45

    bng mn hnh, Minimized: thu nh Form trn thanh Taskbar.

    3.1.2. S kin

    hin th danh sch cc s kin ca cc iu khin, ta kch chut ti biu tng trn ca s Properties:

    Hnh 19. Danh sch s kin ca iu khin Form

    Mun gi s kin no th ta kch p chut vo tn s kin , kt qu C# s t ng to ra dng tiu ca phng thc cha s kin trong ca s code.

    Form c mt s s kin thng dng nh sau:

    Load c kch hot khi Form c np vo b nh, n thng c dng khi to cc gi tr v trng thi cho cc bin, cc iu khin trn Form.

    Click c kch hot khi ngi dng kch chut trn Form.

    FormClosed c kch hot khi ngi dng kch chut vo nt Close x gc trn bn phi ng Form.

    FormClosing Cng c kch hot khi ngi dng kch chut vo nt Close x, nhng xy ra trc s kin FormClosed tc l c pht sinh trc khi ca s Form chun b ng li.

    V d: Nu khng mun ngi dng ng Form bng cch bm chn biu tng Close th trong th tc FormClosing ta t thuc tnh Cancel = True nh sau:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)

  • Bi ging C s lp trnh 2 46

    { e.Cancel = true; }

    3.2. Hp vn bn - TextBox

    Hp vn bn l iu khin rt thng dng, dng nhp d liu u vo t pha ngi s dng v hin th cc kt qu tnh ton c.

    3.2.1. Thuc tnh

    Name Tn Textbox, bt u bi tip u ng txt

    BackColor Thit lp mu nn cho hp TextBox.

    Enabled Enabled=False: khng cho php ngi dng truy cp vo TextBox (Hp Textbox b m i), ngc li th bng True.

    Font Thit lp kiu ch v c ch cho hp vn bn.

    ForeColor Thit lp mu ch cho hp vn bn.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca hp vn bn trn Form, ngc li th nhn gi tr False.

    MaxLength Quy nh chiu di ti a c chp nhn ca hp vn bn, gi tr mc nh l 32767 hoc 0, tc l c th cha 32767 k t. Mi xc lp khc 0, v d 5 th ch cho php ngi dng nhp ti a 5 k t vo hp vn bn.

    Multiline Multiline = False: ch cho php hin th vn bn trn mt dng, v khi thit k ta ch thay i c di ca hp vn bn.

    Multiline = True: cho php vn bn c hin th trn nhiu dng, v c th thay i c di ln rng ca hp vn bn khi thit k.

    PasswordChar Thuc tnh ny cho php ngi s dng bo mt c thng tin nhp vo Textbox. V d t thuc tnh ny bng k t * khi ton b d liu nhp vo s c hin th di dng du hoa th.

    ReadOnly ReadOnly = True: hp vn bn vn c truy cp nhng ngi dng khng th thay i c ni dung bn trong.

    ScrollBars Thit lp thanh cun ngang, dc cho hp vn bn (c hiu lc khi Multiline = True). Ch : thanh cun ngang ch c hiu lc khi WordWrap = False.

    TabIndex Th t truy cp ca hp vn bn khi ngi dng bm phm Tab, th t u tin l 0.

    Text Cha ni dung ca hp vn bn.

    TextAlign Thit lp ch cn chnh: tri, phi hoc gia ca d liu trong hp TextBox.

    Visible Visible = True: hin th hp vn bn, Visible = False: n hp vn bn.

  • Bi ging C s lp trnh 2 47

    WordWrap WordWrap = True: dng vn bn c t ng cun xung dng khi gp l bn phi ca hp TextBox, ngc li th nhn gi tr False. Ch c hiu lc khi Multiline = True.

    3.2.2. S kin

    Hp vn bn c mt s s kin c bn sau:

    TextChanged c kch hot khi ngi dng thc hin s thay i bt k trong hp vn bn nh: thm, xo, sa, dn vn bn.

    Click c kch hot khi ngi dng kch chut vo hp vn bn.

    DoubleClick c kch hot khi ngi dng kch p chut vo hp vn bn.

    GotFocus c kch hot khi ngi dng chuyn tiu im ti hp vn bn.

    KeyPress Tr v k t (tr cc k t c bit nh phm Delete, Home, Ctrl, F1) m ngi s dng g vo hp vn bn thng qua thuc tnh KeyChar.

    KeyDown Tr v m Ascii ca tt c cc k t m ngi s dng g vo hp vn bn thng qua thuc tnh KeyCode.

    LostFocus c kch hot khi hp vn bn mt tiu im.

    MouseMove c kch hot khi ngi dng di chuyn chut qua hp vn bn.

    MouseLeave c kch hot khi ngi dng di chut ra khi hp vn bn.

    V d 1: hin th m Ascii ca mt k t bt k c g vo hp vn bn TextBox1 ta c on chng trnh nh sau:

    private void textBox1_KeyDown(object sender, KeyEventArgs e) { int a; a = Convert.ToInt32(e.KeyCode); MessageBox.Show(a.ToString()); }

    V d 2: Dng s kin KeyPress kim tra vic nhp d liu: ch cho php nhp vo hp vn bn TextBox1 cc s t 0 ti 9, du m - , du chm thp phn . , phm Del (c m Ascii=13) v phm Backspace (c m Ascii = 8) xa d liu. Ta c on chng trnh nh sau:

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (((e.KeyChar >='0') && (e.KeyChar

  • Bi ging C s lp trnh 2 48

    { e.Handled = true; } }

    Nu mi k t c nhp vo hp Textbox khng tho mn iu kin if th s b hy b bng cch t thuc tnh Handled l true.

    3.3. Nt lnh Button

    Nt lnh cho php ngi dng thc hin mt hnh ng no .

    3.3.1. Thuc tnh

    Name Tn nt lnh, bt u bi tip u ng btn

    BackColor Thit lp mu nn cho nt lnh.

    BackgroundImage Thit lp nh nn cho nt lnh.

    Enabled Enabled=False: ngi dng khng th tc ng ln nt lnh, ngc li th bng True.

    Font Xc lp kiu ch v c ch cho nt lnh.

    ForeColor Thit lp mu ch cho nt lnh.

    Image Thit lp nh hin th trn nt lnh.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca nt lnh trn Form, ngc li th nhn gi tr False.

    TabIndex Th t truy cp ca nt lnh khi ngi dng bm phm Tab.

    Text Tiu ca nt lnh. Ta c th quy nh phm nng cho nt lnh bng cch t du & trc mt k t ca Text.

    V d &Quit s c hin th l Quit, khi ngi s dng bm Alt+Q chng trnh s kch hot nt lnh Quit.

    Visible Visible = True: hin th nt lnh, Visible = False: n nt lnh.

    3.3.2. S kin

    Nt lnh c mt s s kin c bn sau:

    Click c kch hot khi ngi dng kch chut vo nt lnh.

    GotFocus c kch hot khi ngi dng chuyn tiu im ti nt lnh.

    LostFocus c kch hot khi nt lnh mt tiu im.

    MouseDown c kch hot khi ngi dng t chut vo nt lnh.

  • Bi ging C s lp trnh 2 49

    MouseUp c kch hot khi ngi dng a chut ra khi nt lnh.

    MouseMove c kch hot khi ngi dng di chuyn chut trn nt lnh.

    MouseLeave c kch hot khi ngi dng di chut ra khi nt lnh.

    3.4. Nhn Lable

    Nhn dng hin th nhng thng tin c tnh cht c nh ngi s dng khng c kh nng thay i v d nh dng thng bo, hng dn

    Nhn c mt s thuc tnh hay dng sau:

    Name Tn nhn, bt u bi tip u ng lbl

    BackColor Thit lp mu nn cho nhn, nu thit lp BackColor = Transparent (mc la chn u tin trong tab Web) th nhn s c nn ging vi nn ca Form.

    BorderStyle Thit lp kiu ng vin cho nhn.

    Font Thit lp kiu ch v c ch cho nhn.

    ForeColor Thit lp mu ch cho nhn.

    Image Thit lp nh hin th trn nhn.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca nhn trn Form, ngc li th nhn gi tr False.

    TabIndex Th t truy cp ca nhn khi ngi dng bm phm Tab.

    Text Tiu ca nhn.

    TextAlign Thit lp ch cn chnh: tri, phi hoc gia ca tiu nhn.

    Visible Hin hoc n nhn.

    3.5. Dng mch nc - ToolTip

    iu khin mch nc cho php hin th cc thng tin ch thch khi ngi dng a chut qua iu khin c thit lp ToolTip.

    V d dng mch nc Hy nhp tn truy cp nh hnh di y.

  • Bi ging C s lp trnh 2 50

    Hnh 20. V d ToolTip

    to dng mch nc cho mt iu khin ta thc hin nh sau:

    Ko iu khin ToolTip vo Form, iu khin ToolTip khng c hin th trn Form m c hin th thanh ngang cui Form v c dng chung cho mi iu khin trn form.

    Kch chut chn iu khin mun to ToolTip, trong ca s Window Properties g ni dung dng ToolTip ti thuc tnh ToolTip on ToolTip1.

    3.6. Bi tp

    Bi tp 2.

    Lp chng trnh nhp thng v nm dng lch, tnh v in ra s ngy ca thng v nm .

    Hnh 21. Giao din bi tp 2

    Yu cu: + Ch c php nhp s nguyn vo hai hp vn bn cha thng v nm.

    + Thng phi c gi tr t 1 n 12, nm gm 4 ch s v c gi tr >=1900.

    + Kt qu ch c tnh khi ngi dng nhp c thng v nm.

  • Bi ging C s lp trnh 2 51

    To d n mi v thit lp cc thuc tnh ca cc iu khin nh sau:

    iu khin Thuc tnh Gi tr

    Form1

    Name frmNgaythang

    FormBorderStyle Fixed3D

    Icon Chn file nh c ui .ico bt k

    Text Program of date

    Lable1 Text Nhp thng

    Lable2 Text Nhp nm

    Lable3

    Name lblKetqua

    Text Kt qu:

    TextBox1 Name txtNhapthang

    MaxLength 2

    TextBox2 Name txtNhapnam

    MaxLength 4

    Button1 Name btnKetqua

    Text &Kt qu

    Button2 Name btnLamlai

    Text &Lm li

    Button3 Name btnThoat

    Text &Thot

    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 WindowsFormsApplication1 { public partial class frmNgaythang : Form { public frmNgaythang() { InitializeComponent(); } private void txtNhapthang_KeyPress(object sender, KeyPressEventArgs e) { if (((e.KeyChar >='0') && (e.KeyChar

  • Bi ging C s lp trnh 2 52

    } private void txtNhapnam_KeyPress(object sender, KeyPressEventArgs e) { if (((e.KeyChar >='0') && (e.KeyChar 12 || thang < 0) { MessageBox.Show("Bn phi nhp thng trong [1,12]", "Thng bo",

    MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapthang.Focus(); txtNhapthang.Text = ""; return; } if (nam < 1900) { MessageBox.Show("Bn phi nhp nm c gi tr >= 1900", "Thng bo",

    MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapnam.Focus(); txtNhapnam.Text = ""; return; } switch (thang) { case 4: case 6: case 9: case 11: ngay = 30; break; case 1: case 3: case 5:

  • Bi ging C s lp trnh 2 53

    case 7: case 8: case 10: case 12: ngay = 31; break; case 2: if (((nam % 4 == 0) && (nam % 100 != 0))||(nam % 400 == 0)) ngay = 29; else ngay = 28; break; } lblKetqua.Text = "Thng " + thang + " nm " + nam + " c " + ngay + " ngy"; btnKetqua.Enabled = false; btnLamlai.Enabled = true; txtNhapthang.ReadOnly = true; txtNhapnam.ReadOnly = true; } private void btnLamlai_Click(object sender, EventArgs e) { txtNhapthang.Text = ""; txtNhapthang.ReadOnly = false; txtNhapthang.Focus(); txtNhapnam.Text = ""; txtNhapnam.ReadOnly = false; btnKetqua.Enabled = true; lblKetqua.Text = "Kt qu: "; } 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 tp 3.

    Nhp 2 s nguyn a, b v tnh tng cc s t a n b theo giao din sau:

  • Bi ging C s lp trnh 2 54

    Hnh 22. Giao din bi tp 3

    Yu cu:

    To dng ToolTip Nhp s nguyn cho 2 hp vn bn Nhp a v Nhp b.

    Ch cho php ngi dng nhp s vo hai hp vn bn.

    Nt Tng: kim tra ngi dng phi nhp d liu cho c hai s a v b, tnh tng cc s t a n b nu a < b, hoc tnh tng cc s t b n a nu b < a, ri hin th kt qu vo nhn pha di.

    Nt Lm li: xa cc d liu c cc iu khin, sau t con tr vo hp vn bn Nhp a.

    Nt Thot: thot khi chng trnh quay v mi trng son tho.

    Bi tp 4.

    Nhp s nguyn dng n, to n s nguyn ngu nhin c gi tr t 1 ti 100, v thc hin cc yu cu sau:

    Ch cho php ngi dng nhp s vo hp vn bn Nhp n.

    Nt Nhp: kim tra ngi dng phi nhp gi tr cho n, sau to n s ngu nhin v hin th cc s ngu nhin nhn Dy s.

    Nt Tnh tng: tnh tng n s ngu nhin v hin th kt qu nhn Tng dy s.

    Nt Sp xp: sp xp n s ngu nhin theo th t tng dn v hin th kt qu nhn Sp xp.

  • Bi ging C s lp trnh 2 55

    Nt Lm li: xa cc d liu c cc iu khin, sau t con tr vo hp vn bn Nhp n.

    Nt Thot: thot khi chng trnh quay v mi trng son tho.

    Hnh 23. Giao din bi tp 4

    Bi tp 5.

    Hp thoi MessageBox ca C# tuy rt a dng v phong ph nhng c lc ta cng cn mt hp thoi tng t theo phong cch ring ca mnh, v d hin th tiu cho cc nt nhn bng ting Vit.

    V d: vit chng trnh t to hp thoi thng bo thc hin cc yu cu theo giao din sau:

    Hnh 24. Giao din bi tp 5

    Kch chut vo nt Thot trn Form1 s xut hin hp thng bo Bn c mun thot khng? vi giao din ting Vit. Chn nt C ng Form1 v thot khi chng trnh, chn nt Khng quay li Form1.

  • Bi ging C s lp trnh 2 56

    Trong hp thng bo Bn c mun thot khng? chnh l mt form c thit k tng t nh mt hp thoi thng bo.

    Bc 1: Xy dng Form1

    Vo Microsoft Visual Studio 2010 to mt d n mi c tn Hopthoai v thit lp cc thuc tnh ca cc iu khin nh sau:

    iu khin Thuc tnh Gi tr

    Form1 Name Form1

    StartPosition CenterScreen

    Button1 Name btnThoat

    Text Thot

    Bc 2: Xy dng form Thng bo

    Ta b sung thm mt form mi vo d n theo cc bc sau:

    Chn menu Project | Add Windows Forms xut hin hp thoi Add New Item.

    Chn Windows Form v t tn Message.cs ti Name ri chn nt Add. Kt qu form Message.cs c thm vo d n.

    Thay i kch thc ca form Message.cs nh hnh trn v thit lp cc thuc tnh ca cc iu khin trn form nh sau:

    iu khin Thuc tnh Gi tr

    Message.vb

    Name frmMessage

    FormBorderStyle FixedToolWindow

    ShowIcon False

    StartPosition CenterScreen

    Text Thng bo

    Lable1 Name lblMessage

    Modifiers Public

    PictureBox1 Image Question.bmp

    Button1

    Name btnCo

    DialogResult Yes

    Text C

    Button2 Name btnKhong

  • Bi ging C s lp trnh 2 57

    DialogResult No

    Text Khng

    Bc 3: Vit Code

    M ca s code ca Form1 v vit m lnh cho nt btnThoat nh sau:

    private void btnThoat_Click(object sender, EventArgs e) { frmMessage frm = new frmMessage(); frm.lblMessage.Text = "Bn c mun thot khng?"; if (frm.ShowDialog() == System.Windows.Forms.DialogResult.Yes) Application.Exit(); }

    Ch :

    T mt form ta khng th tc ng trc tip ti mt form khc m phi khai bo mt bin i din cho form mun tc ng v mi thao tc u c thc hin trn bin ny. V d t form Form1 mun hin th hoc tc ng ti cc iu khin trong form frmMessage ta khai bo bin frm c kiu l frmMessage nh trn.

    hin th mt Form khc ta gi phng thc ShowDialog theo c php sau:

    TnbinForm.ShowDialog();

    truy cp ti thuc tnh ca cc iu khin trong mt Form khc ta thc hin theo c php sau:

    TnbinForm.Tniukhin.Tnthuctnh = Gitr;

    Khi ta thit lp gi tr DialogResult cho mt nt lnh th nu ngi dng kch chut vo nt lnh ca s Form cha nt lnh s b ng li v tr v gi tr ca DialogResult ti ni gi phng thc ShowDialog() hin th Form .

    PictureBox l mt iu khin cho php cha cc tp nh c ui .bmp, .jpg Trong my tnh khng c sn tp nh Question.bmp m ta phi t to bng ng dng Paint.

    4. Mt s iu khin c bn khc

    4.1. Nhm GroupBox

    Nhm c th cha cc iu khin khc v to thnh cc vng lm vic c lp trn mt Form.

    GroupBox c mt s thuc tnh thng dng sau:

  • Bi ging C s lp trnh 2 58

    Name Tn nhm, bt u bi tip u ng grb

    BackColor Thit lp mu nn cho nhm, nu BackColor = Transparent th nhm s c mu nn ging vi mu nn ca Form.

    BackgroundImage Thit lp nh nn cho nhm.

    BackgroundImageLayout Thit lp ch hin th nh nn ca nhm.

    Enabled Nu Enabled = False nhm s khng hot ng.

    Font Xc lp kiu ch v c ch ca tiu nhm.

    ForeColor Xc lp mu ch ca tiu nhm.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca nhm trn Form, ngc li th nhn gi tr False.

    TabIndex Th t truy cp ca nhm khi ngi dng bm phm Tab.

    Text Thit lp tiu ca nhm.

    Visible Visible = True: hin th nhm, Visible = False: n nhm.

    4.2. Hp nh du CheckBox

    Hp nh du cho php ng thi khng chn, chn mt, hoc chn nhiu kh nng trong mt nhm cc la chn.

    4.2.1. Thuc tnh

    Name Tn hp CheckBox, bt u bi tip u ng chk

    BackColor Thit lp mu nn cho hp CheckBox.

    BackgroundImage Thit lp nh nn cho hp CheckBox.

    Checked Tr v gi tr ca hp CheckBox ng vi trng thi ca n khi tng tc vi ngi s dng:

    + Checked =True: hp CheckBox ang c chn

    + Checked = False: hp CheckBox khng c chn.

    CheckState Thit lp trng thi cho hp CheckBox:

    + CheckState = Checked: hp CheckBox c chn

    + CheckState = Unchecked: hp CheckBox khng c chn.

    Enabled Nu Enabled = False hp CheckBox s khng hot ng.

    Font Xc lp kiu ch v c ch ca ni dung hp CheckBox.

    ForeColor Xc lp mu ch ca ni dung hp CheckBox.

  • Bi ging C s lp trnh 2 59

    Image Thit lp nh hin th trn hp CheckBox.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca hp CheckBox trn Form, ngc li th nhn gi tr False.

    TabIndex Th t truy cp khi ngi dng bm phm Tab.

    Text Thit lp ni dung ca hp CheckBox.

    Visible Visible = True: hin th hp CheckBox

    Visible = False: n hp CheckBox.

    4.2.2. S kin

    Click c kch hot khi ngi dng kch chut vo hp CheckBox.

    GotFocus c kch hot khi ngi dng chuyn tiu im ti hp CheckBox.

    LostFocus c kch hot khi hp CheckBox mt tiu im.

    CheckedChanged c kch hot khi hp CheckBox thay i trng thi.

    4.3. Nt tu chn RadioButton

    Nt tu chn ch cho php ngi dng chn mt kh nng trong mt nhm cc la chn.

    4.3.1. Thuc tnh

    Name Tn nt tu chn, bt u bi tip u ng rdo

    BackColor Thit lp mu nn cho nt ty chn.

    BackgroundImage Thit lp nh nn cho nt ty chn.

    Checked Tr v gi tr ca nt ty chn khi tng tc vi ngi s dng.

    + Checked = True: nt ty chn ang c chn

    + Checked = False: nt ty chn khng c chn.

    Enabled Nu Enabled = False nt tu chn s khng hot ng.

    Font Xc lp kiu ch v c ch ca ni dung nt ty chn.

    ForeColor Xc lp mu ch ca ni dung nt ty chn.

    Image Thit lp nh hin th trn nt ty chn.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca nt ty chn trn Form, ngc li th nhn gi tr False.

    TabIndex Th t truy cp khi ngi dng bm phm Tab.

  • Bi ging C s lp trnh 2 60

    Text Thit lp ni dung ca nt ty chn.

    Visible True: hin th nt ty chn, False: n nt ty chn.

    4.3.2. S kin

    Click c kch hot khi ngi dng kch chut vo nt tu chn.

    GotFocus c kch hot khi ngi dng chuyn tiu im ti nt tu chn.

    LostFocus c kch hot khi nt tu chn mt tiu im.

    CheckedChanged c kch hot khi nt ty chn thay i trng thi.

    Bi tp 6.

    Lp chng trnh nhp 2 s a v b, chn v thc hin cc php ton theo yu cu sau:

    Ch c nhp s cho a v b, khng cho php nhp d liu vo hp kt qu.

    Cc php ton ch c thc hin khi ngi dng nhp hai d liu cho a v b. Trong php chia kim tra nu b = 0 th thng bo Mu = 0 ti hp Kt qu.

    Kch chn php ton no th thc hin php ton i vi a, b v lu kt qu vo hp Kt qu.

    Nu chn hp nh du Max th hin th Max = ngc li ch hin th Max. Thc hin tng t cho hp nh du Min.

  • Bi ging C s lp trnh 2 61

    Hnh 25. Giao din bi tp 6

    Vo Microsoft Visual Studio 2010 to mt d n mi t tn l Calculation v thit lp cc thuc tnh ca cc iu khin nh sau:

    iu khin Thuc tnh Gi tr

    Form1

    Name frmCalculation

    FormBorderStyle Fixed3D

    Icon Chn file nh c ui .ico bt k

    Text Program of Calculation

    GroupBox1 Text Rng

    GroupBox2 Text Php ton

    GroupBox3 Text So snh

    Lable1 Text Nhp a =

    Lable2 Text Nhp b =

    Lable3 Text Kt qu =

    TextBox1 Name txtNhapA

    TextBox2 Name txtNhapB

    TextBox3 Name txtKetqua

    RadioButton1 Name rdoCong

    Text Cng

  • Bi ging C s lp trnh 2 62

    RadioButton2 Name rdoTru

    Text Tr

    RadioButton3 Name rdoNhan

    Text Nhn

    RadioButton4 Name rdoChia

    Text Chia

    CheckBox1 Name chkMax

    Text Max

    CheckBox2 Name chkMin

    Text Min

    Button1 Name btnLamlai

    Text Lm li

    Button2 Name btnThoat

    Text Thot

    Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:

    private void txtNhapa_KeyPress(object sender, KeyPressEventArgs e) { if (((e.KeyChar >='0') && (e.KeyChar

  • Bi ging C s lp trnh 2 63

    txtNhapb.Enabled = false;

    }

    private void chkMax_Click(object sender, EventArgs e) { int a,b; if (txtNhapa.Text == "") { MessageBox.Show("Bn phi nhp gi tr cho a", "Thng bo",

    MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapa.Focus();

    chkMax.Checked = false; return; } if (txtNhapb.Text == "") { MessageBox.Show("Bn phi nhp gi tr cho b", "Thng bo",

    MessageBoxButtons.OK, MessageBoxIcon.Information); txtNhapb.Focus();

    chkMax.Checked = false; return; } a = Convert.ToInt32(txtNhapa.Text);

    b = Convert.ToInt32(txtNhapb.Text);

    if (chkMax.Checked == true)

    { if (a>b) chkMax.Text = "Max= " + a.ToString ();

    else chkMax.Text = "Max= " + b.ToString (); } else

    chkMax.Text = "Max";

    txtNhapa.Enabled = false;

    txtNhapb.Enabled = false;

    }

    Ch : trong on m lnh trn tt c cc th tc: rdoCong_Click, rdoTru_Click, rdoNhan_Click, rdoChia_Click, chkMax_Click, chkMin_Click u phi kim tra ngi dng nhp d liu vo hai hp vn bn txtNhapA v txtNhapB. khng phi vit li on m 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", "Thng

    bo",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);

  • Bi ging C s lp trnh 2 64

    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; } }

    // 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:

    Hnh 26. Giao din bi tp 7

    Kim tra ngi dng phi nhp d liu cho M hng, n gi v s lng.

    Ch c php nhp gi tr s cho n gi v S lng.

  • Bi ging C s lp trnh 2 65

    Nu Gim gi c chn th hin th 2 iu khin gim gi 5% v 10%, ngc li khng hin th 2 iu khin ny.

    4.4. Hp danh sch ListBox

    Hp ListBox l mt tp hp cc chui k t c trnh by di dng lit k 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

    Name Tn hp ListBox, bt u bi tip u ng lst

    BackColor Thit lp mu nn cho hp danh sch.

    DataSource Thit lp ngun d liu cho ListBox

    Enabled Nu Enabled = False hp danh sch s khng hot ng.

    Font Xc lp kiu ch v c ch cho hp danh sch.

    ForeColor Xc lp mu ch cho hp danh sch.

    MultiColumn MultiColumn = True: cho php hin th d liu theo nhiu ct. MultiColumn = False: ch cho php hin th d liu theo 1 ct.

    ColumnWidth Thit lp rng cho mi ct trong ListBox.

    Items Khi 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, C# 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.Count Tr 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 Tng t nh thuc tnh Items[n], nhng ch c th tr v ni dung ca phn t hin hnh ang c chn.

    Locked Locked = True: kha khng cho php dch chuyn v tr ca hp danh sch trn Form, ngc li th nhn gi tr False.

    SelectedIndex Tr v s th t ca phn t ang c chn trong danh sch, phn t u tin c SelectedIndex = 0, nu khng c phn t no c chn th SelectedIndex = -1

    SelectionMode Quy nh ch la chn cc phn t trong hp danh sch khi thc thi chng trnh. SelectionMode c 4 gi tr: None - khng cho php la chn

  • Bi ging C s lp trnh 2 66

    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.

    SelectedItems Tr v tp cc phn t ang c chn.

    Sorted Nu Sorted = True th cc phn t trong danh sch c sp xp theo th t ABC.

    TabIndex Th t truy cp khi ngi dng bm phm Tab.

    Visible True: hin th hp danh sch, False: n hp danh sch.

    4.4.2. S kin

    Click c kch hot khi ngi dng kch chut vo hp danh sch.

    DoubleClick c kch hot khi ngi dng kch p chut vo hp danh sch.

    GotFocus c kch hot khi ngi dng chuyn tiu im ti hp danh sch.

    LostFocus c kch hot khi hp danh sch mt tiu im.

    SelectedIndex_

    Changed

    c kch hot khi ngi dng thay i trng thi la chn cc dng d liu trong hp vn bn.

    4.4.3. Phng thc

    Add: dng b sung mt phn t cho hp danh sch trong thi gian thi hnh v thng c vit trong th tc Form_Load. C php ca phng thc ny l:

    ListName.Items.Add(Item);

    Trong ListName l tn ca hp danh sch, Item l ni dung ca phn t ta mun thm 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 b mt phn t ca hp danh sch theo ch s trong thi gian thi hnh. C php ca phng thc ny l:

  • Bi ging C s lp trnh 2 67

    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: dng loi b tt c cc phn t ca hp danh sch trong thi gian thi hnh. 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:

    Nhp mt tn nc vo hp vn bn Nhp tn nc, chn nt Thm mi thm 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 27. 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:

  • Bi ging C s lp trnh 2 68

    iu khin Thuc tnh Gi tr

    Form1

    Name frmTennuoc

    FormBorderStyle Fixed3D

    Icon Chn file nh c ui .ico bt k

    Text Chuong trinh minh hoa Listbox

    Lable1 Text Nhp tn nc

    Lable2 Text Danh sch cc nc

    TextBox1 Name txtNuoc

    ListBox1 Name lstNuoc

    Button1 Name btnThemmoi

    Text &Thm mi

    Button2 Name btnXoa

    Text &Xa

    Button3 Name btnTimkiem

    Text Tm &kim

    Button4 Name btnThoat

    Text T&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) {

  • Bi ging C s lp trnh 2 69

    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) == 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) { 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

  • Bi ging C s lp trnh 2 70

    Vit chng trnh minh ho cc thao tc trn hp Listbox theo giao din v yu cu sau:

    Hnh 28. Giao din bi tp 9

    Yu cu: + Nhp vo hp danh sch 100 phn t t Items 1 n Items 100.

    + D liu c hin th thnh 4 ct trong mt trang mn hnh.

    + Ngi dng c th la chn ng thi mt hoc nhiu phn t.

    Vo Microsoft Visual Studio 2010 to mt d n mi, t mt hp danh sch lstDanhsach v mt nt lnh btnKetqua vi tiu l Kt qu vo form Form1.

    Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:

    private void Form1_Load(object sender, EventArgs e) { // Cho php hin th nhiu ct lstDanhsach.MultiColumn = true ; // Hin th 4 ct trong mt trang lstDanhsach.ColumnWidth = lstDanhsach.Width / 4; // Cho php chn ng thi nhiu phn t lstDanhsach.SelectionMode = SelectionMode.MultiSimple; // Add d liu vo hp danh sch for (int i = 1 ; i

  • Bi ging C s l