Download as pdf or txt
Download as pdf or txt
You are on page 1of 196

Bi ging Lp trnh giao din

BI GING LP TRNH GIAO DIN


Chng I: Tng quan v lp trnh giao din vi Visual Studio.Net................................. 7
1.

2.

Tng quan v lp trnh giao din ........................................................................... 7


1.1.

Khi nim v cc tng (tier) trong vic pht trin phn mm ......................... 7

1.2.

Tng giao din (Presentation tier) ................................................................... 7

1.3.

Cc quy tc c bn ca giao din phn mm .................................................. 7

1.4.

Thit k chng trnh a tng (n-tier) ............................................................. 8

Gii thiu cng ngh .NET ca Microsoft ............................................................. 8


2.1.

Gii thiu Microsoft Visual Studio.NET 2010 ............................................... 8

2.2.

.NET Framework and the Common Language Runtime (CLR) ..................... 9

2.3.

Cc ngn ng trong VS 2010 ........................................................................ 12

2.4.

Cc loi project trong VS 2010 ..................................................................... 12

2.5.

To project mi trong VS2010...................................................................... 13

2.6.

Cc thnh phn trong mt project ................................................................. 14

2.7.

Trang Start Page ............................................................................................ 22

2.8.

Minh ha xy dng ng dng vi Visual C# ................................................ 23

Chng II:

Ngn ng lp trnh C# ............................................................................... 28

1.

Gii thiu ngn ng lp trnh C# ......................................................................... 28

2.

Cc c im ca ngn ng C# ........................................................................... 29

3.

Cc bc xy dng mt ng dng bng C# ........................................................ 30

4.

3.1.

To project ng dng (Xem chng I, mc 2.5) .......................................... 30

3.2.

Cu trc mt chng trnh C# ....................................................................... 30

3.3.

Thit k giao din .......................................................................................... 30

3.4.

Vit code ....................................................................................................... 31

3.5.

Thm cc thnh phn vo project.................................................................. 32

3.6.

Bin dch, thc thi ......................................................................................... 33

Cc kiu d liu trong C# .................................................................................... 33


1.1.

Cc kiu d liu xy dng sn: ..................................................................... 34

4.2.

Kiu d liu lit k (Enum): .......................................................................... 34

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


4.3.
5.

Kiu d liu cu trc ..................................................................................... 34

Bin, Hng ........................................................................................................... 38


5.1.

Bin: .............................................................................................................. 38

5.2.

Hng: ............................................................................................................. 39

6.

Ton t ................................................................................................................. 39

7.

Cu trc la chn ................................................................................................. 39

8.

9.

7.1.

Cu lnh if n .............................................................................................. 39

7.2.

Cu lnh if y ......................................................................................... 40

7.3.

if..else lng nhau ........................................................................................... 41

7.4.

Cu lnh switch ............................................................................................. 43

Cu trc lp .......................................................................................................... 44
8.1.

Vng lp for .................................................................................................. 44

8.2.

Vng lp while .............................................................................................. 45

8.3.

Vng lp do .. while ...................................................................................... 46

8.4.

Lnh foreach .................................................................................................. 47

8.5.

Lnh break, continue, return ......................................................................... 48

X l ngoi l ....................................................................................................... 48
9.1.

Gii thiu ....................................................................................................... 48

9.2.

Lnh throw .................................................................................................... 50

9.3.

S dng checked v unchecked .................................................................... 50

9.4.

Pht biu using .............................................................................................. 52

9.5.

Cc lp ngoi l thng dng ....................................................................... 53

Chng III:

Hng i tng trong C# ......................................................................... 55

1.

Gii thiu v Lp trnh hng i tng ............................................................. 55

2.

Lp (class) ............................................................................................................ 57

3.

Phng thc (method) ......................................................................................... 58

4.

Cc phng thc np chng ................................................................................ 59

5.

Phng thc khi to (Constructor) .................................................................... 60

6.

Thuc tnh (Properties) ........................................................................................ 61

7.

Tham chiu this .................................................................................................... 63

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


8.

D liu v phng thc tnh ................................................................................ 64

9.

Cc cch truyn tham s ...................................................................................... 64

10.

K tha ................................................................................................................. 65

Chng IV:
1.

2.

3.

Windows Form v cc controls ................................................................. 69

Form ..................................................................................................................... 69
1.1.

Cc thuc tnh v phng thc ca Form ..................................................... 69

1.2.

Cc s kin trn Form ................................................................................... 70

1.3.

Thm mt form vo project.......................................................................... 71

1.4.

To Form k tha .......................................................................................... 72

1.5.

To form lc chng trnh thc thi ............................................................... 75

Controls ................................................................................................................ 76
2.1.

Thm cc control vo Form .......................................................................... 76

2.2.

Cc thuc tnh chung ca control .................................................................. 76

2.3.

S kin chung ca cc control....................................................................... 77

2.4.

T chc cc control trn Form ...................................................................... 77

Cc controls c bn .............................................................................................. 84
3.1.

Label .............................................................................................................. 84

3.2.

TextBox ......................................................................................................... 85

3.3.

Button ............................................................................................................ 85

3.4.

CheckBox ...................................................................................................... 86

3.5.

RadioButton .................................................................................................. 86

3.6.

PictureBox ..................................................................................................... 87

3.7.

Tooltip ........................................................................................................... 88

3.8.

NumericUpDown .......................................................................................... 89

3.9.

iu khin VScrollBar, HScrollBar .............................................................. 89

4.

Cc control cha (Container) ............................................................................... 90

5.

Cc control dng danh sch ................................................................................. 92


5.1.

ListBox, CheckedListBox ............................................................................. 92

5.2.

ComboBox .................................................................................................... 94

5.3.

ImageList ....................................................................................................... 94

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


5.4.

ListView ........................................................................................................ 96

5.5.

TreeView ....................................................................................................... 99

6.

Cc control khc................................................................................................. 100

7.

UserControl ........................................................................................................ 104

8.

Thm cc control lc chng trnh thc thi ....................................................... 104

9.

Menu .................................................................................................................. 105

10.

Cc hp thoi thng dng ca Windows ........................................................... 107

10.1.

Gii thiu chung .......................................................................................... 107

10.2.

OpenFileDialog ........................................................................................... 109

10.3.

SaveFileDialog ............................................................................................ 110

10.4.

FontDialog ................................................................................................... 111

10.5.

ColorDialog ................................................................................................. 113

10.6.

FolderBrowserDialog .................................................................................. 114

11.

ng dng SDI MDI ........................................................................................ 115

11.1.

Gii thiu:.................................................................................................... 115

11.2.

ng dng SDI ............................................................................................. 115

11.3.

ng dng MDI ............................................................................................ 119

Chng V:
1.

2.

S kin bn phm (Keyboard) ............................................................................ 128


1.1.

Gii thiu ..................................................................................................... 128

1.2.

KeyPress ...................................................................................................... 129

1.3.

S kin KeyUp, KeyDown.......................................................................... 131

1.4.

V d v x l s kin bn phm ................................................................. 132

S kin chut (Mouse) ....................................................................................... 134

Chng VI:
1.

S kin bn phm v chut ...................................................................... 128

Mng Chui .......................................................................................... 139

Mng .................................................................................................................. 139


1.1.

Gii thiu v mng ...................................................................................... 139

1.2.

Khai bo mng ............................................................................................ 140

1.3.

Lm vic vi mng ...................................................................................... 140

1.4.

Truyn mng cho phng thc ................................................................... 142

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din

2.

1.5.

Mng nhiu chiu ........................................................................................ 143

1.6.

Cc lp tp hp thng dng ........................................................................ 145

Chui (String) .................................................................................................... 149


2.1.

Gii thiu ..................................................................................................... 149

2.2.

Phng thc khi to ca lp string (string constructor) ........................... 151

2.3.

Cc phng thc ca lp String .................................................................. 152

2.4.

Cc thao tc vi chui ................................................................................. 153

2.5.

Lp StringBuilder ....................................................................................... 159

Chng VII:
1.

2.

3.

Lm vic vi File v th mc ............................................................... 165

Lp File, Directory v Stream ........................................................................... 165


1.1.

Gii thiu:.................................................................................................... 165

1.2.

Lp File: ...................................................................................................... 165

1.3.

Lp Directory: ............................................................................................. 166

Lm vic vi file v th mc ............................................................................. 166


2.1.

c, ghi tp tin nh phn: ............................................................................ 166

2.2.

c, ghi tp tin vn bn: ............................................................................. 167

2.3.

To, xa, di chuyn file: ............................................................................. 168

2.4.

To, xa, di chuyn th mc: ...................................................................... 168

2.5.

Truy xut thng tin ca file: ........................................................................ 168

2.6.

Truy xut thng tin ca th mc: ................................................................ 169

2.7.

Lit k file v th mc con trong th mc: ................................................. 169

Serialization ....................................................................................................... 171

Chng VIII:

ha .................................................................................................. 174

1.

Gii thiu th vin GDI+ ................................................................................... 174

2.

Lp Graphics ...................................................................................................... 177

3.

Lm vic vi cc i tng ha .................................................................... 178


3.1.

Brushes ........................................................................................................ 178

4.

Pens .................................................................................................................... 186

5.

Fonts ................................................................................................................... 187

6.

V, t mu cc i tng ................................................................................... 189

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


6.1.

V ng thng: .......................................................................................... 189

6.2.

V hnh ch nht: ........................................................................................ 189

6.3.

V ellipse v hnh trn ................................................................................ 190

6.4.

V a gic: ................................................................................................... 191

6.5.

V nh (Image) ............................................................................................ 191

6.6.

T mu i tng: ....................................................................................... 193

6.7.

V ch: s dng phng thc DrawString ................................................. 194

6.8.

V bng chut: ............................................................................................ 196

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din

Chng I: TNG QUAN V LP TRNH GIAO DIN VI VISUAL


STUDIO.NET
MC TIU
Phn bit c cc tng v chc nng mi tng trong qu trnh thit k xy dng
phn mm, c bit l tng giao din.
Phn bit c cc loi giao din ng dng c th la chn loi giao din ph
hp vi yu cu s dng ca phn mm.
S dng c cng ngh VisualStudio.Net ca Microsoft v Visual C#2010
Bc u lm quen v xy dng c mt ng dng n gin trong mi trng
Visual Studio.Net
1. Tng quan v lp trnh giao din
1.1. Khi nim v cc tng (tier) trong vic pht trin phn mm
- Trong lp trnh xy dng ng dng, mt phn mm c th c chia thnh nhiu
lp ng dng gi l cc tng
- Ty theo mc phc tp, ngi ta c th chia phn mm thnh nhiu tng: 2-tier,
3-tier,, n-tier. Trong , ph bin nht l kin trc ba tng (3-tier)
- Li ch ca vic s dng m hnh a tng trong thit k xy dng phn mm:
Pht trin phn mm: C tnh chuyn nghip ha, c th chia cho nhiu nhm
c o to nhiu k nng khc nhau, nh thit k m thut, lp trnh, t chc
c s d liu
Bo tr: cc thnh phn ca mt h thng d c thay i, khng hoc ch nh
hng n lp ngay gn k ca n, khng phi vit li c chng trnh
M rng: thm cc chc nng mi cho tng lp d dng hn
1.2. Tng giao din (Presentation tier)
- Gm cc thc th phn mm lm nhim v hin th.
- Cung cp cc i tng c th tng tc vi ngi s dng
- Giao din ha (GUI- Graphic User Interface) trc quan: s dng cc hnh nh,
biu tng, k hiu, mt cch hp l mang li s tin li, n gin v hiu qu
cho ngi dng
1.3. Cc quy tc c bn ca giao din phn mm
- Tm quan trng ca giao din phn mm:
Giao din l b mt ca phn mm, do cn r rng, sng sa, thn thin
ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


Giao din l ni cung cp chc nng cho ngi s dng, do cn c y
cc chc nng, d s dng v s dng an ton
Giao din l ni cung cp cc tr gip, do cn c y cc hng dn s
dng, kp thi v hiu qu
Phn mm l cng c s dng hng ngy, nn giao din cn c kh nng ty
bin v linh hot trnh nhm chn
- Vi vai tr quan trng nh trn, giao din phn mm cn phi t c cc yu cu
sau:
Thn thin: ngi s dng s khng c cm gic lng tng, mt t tin khi s
dng chng trnh v mi cng c c hin th r rng v sp xp c th t
theo quy trnh nghip v.
D s dng: mi danh mc, thanh cng c, biu tng, vn bn minh ha c
thit k gn gi vi nhn thc ca ngi dng, gip h tip cn nhanh mi chc
nng ca chng trnh.
Tin cy: mt giao din vi mu sc, ng nt sc so, ni dung r rng, mch
lc v b tr hp l s to cm gic thoi mi v tin tng cho ngi s dng.
1.4. Thit k chng trnh a tng (n-tier)
- Bc1: Xc nh cc yu cu, chc nng ca ng dng
- Bc 2: Phn loi v nhm cc chc nng ca ng dng
- Bc 3: Thit k cu trc d liu, c s d liu, y l bc rt quan trng nh
hng n hiu sut ng dng tng th, tin cy v kh nng s dng ca chng
trnh
- Bc 4: Xy dng cc lp truy xut d liu
- Bc 5: Thit k tng ng dng, xc nh cc thnh phn ca tng ny, bao
gm nh ngha giao din, u vo, u ra v cu trc d liu.
- Bc 6: Xy dng tng giao din tng tc vi ngi s dng
2. Gii thiu cng ngh .NET ca Microsoft
2.1. Gii thiu Microsoft Visual Studio.NET 2010
Cng ngh .NET ca Microsoft c cng b vo nm 2000, m ra mt tm nhn mi
trong lnh vc xy dng, phn phi v s dng phn mm. Cng ngh .NET cho php nh
pht trin to cc ng dng .Net vi nhiu loi ngn ng nh C#, Visual Basic, v nhng
ngn ng khc. Trong bao gm cng ngh ASP.NET ca Microsoft, cho php bn to
ra cc ng dng v dch v Web mt cch trc quan.
Cc phin bn ca Visual Studio.NET:

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din


- Visual Studio 2002 (12/2/2002)
.NET Framework 1.0
- Visual Studio 2003 (24/4/2003)
.NET Framework 1.1
.NET Compact Framework, phin bn thu gn ca .NET Framework cho cc
thit b di ng
- Visual Studio 2005 (10/2005)
.NET Framework 2.0
H tr hon ton cho tnh ton 64-bit
.NET Framework 3.0 = .NET 2.0 + WPF + WCF + WF + WCS
- Visual Studio 2008 (11/2007)
.NET Framework 3.5 = .NET 3.0 + LINQ + ASP.NET 3.5
- Visual Studio 2010 (12/4/2010)
.NET Framework 4.0
- Visual Studio 2012 (15/8/2012)
.NET Framework 4.5
- Visual Studio 2013
H tr mnh cc cng ngh mi (Windows Phone, Windows Store,...)
2.2. .NET Framework and the Common Language Runtime (CLR)
.NET Framework l mt thnh phn quan trng trong cng ngh .NET ca Microsoft
bao gm hai thnh phn chnh l lp th vin .NET Framework (Framework class
library) v CommonLanguageRuntime (CLR)

ThS. Nguyn Th Mai Trang

Bi ging Lp trnh giao din

2.2.1. CLR:
- CLR l thnh phn kt ni gia cc phn khc trong .NET Framework vi h iu
hnh.Mt chng trnh vit bng ngn ng trong .NET, khng c bin dch ra
m my m n c bin dch ra mt ngn ng trung gian Microsoft Intermediate
Language (MSIL). Khi chy chng trnh, CLR s dch MSIL ra m my thc
thi cc tnh nng, m bo ng dng khng chim dng v s dng trn lan ti
nguyn ca h thng. N cng khng cho php cc lnh nguy him c thi hnh.
Cc chc nng ny c thc thi bi cc thnh phn bn trong CLR nh Class
loader,Just In Time compiler, Garbage collector, Exception handler, COM
marshaller, Security engine,
- Mt my tnh c ci t .NET Framework c th chy bt k mt chng trnh
.NET no. Trong cc phin bn h iu hnh Windows mi nh XP.Net v
Windows 2003, CLR c gn km vi h iu hnh. iu ny m bo ng dng
vit ra trn my tnh ca bn s chy trn cc my tnh khc m khng cn ci t.

ThS. Nguyn Th Mai Trang

10

Bi ging Lp trnh giao din


-

.NET Framework cng cung cp mt kh nng tng tc gia cc ngn ng.


Chng trnh c th c vit bng ngn ng khc nhau (C#, Visual Basic,), tt
c c bin dch thnh MSIL - cc thnh phn khc nhau c th c kt hp
to ra mt chng trnh thng nht. Nh c MSIL, .NET Framework tr thnh mt

ngn ng c lp, bi v cc chng trnh .NET khng gn vi mt ngn ng lp


trnh c th.
2.2.2. Framework Class Library:
Th vin nn tng cho .NET Framework, cha ng hu ht cc lp cho php xy dng
cc loi ng dng vi cc ngn ng khc nhau.
- Base class library th vin cc lp c s: y l th vin cc lp c bn nht,
c dng trong khi lp trnh hay bn thn nhng ngi xy dng .NET
Framework cng phi dng n xy dng cc lp cao hn. V d cc lp trong
th vin ny l String, Interger, Exception,
- ADO.NET v XML: B th vin ny gm cc lp dng x l d
liu. ADO.NET thay th ADO trong vic thao tc vi cc d liu thng thng.
Cc lp i tng XML c cung cp x l cc d liu theo chun nh
dng XML
ASP.NET: ng dng Web xy dng bng ASP.NET tn dng c ton b kh
nng ca .NET Framework theo phong cch lp trnh mi gi l code behind, tch
ring phn code v giao din tng t nh cch lp trnh trn Windows Form.
- Web services: l cc dch v c cung cp qua Web (hay Internet). Dch v c
coi l Web service khng nhm vo ngi dng m nhm vo ngi xy dng phn
mm. Web services c th dng cung cp cc d liu hay mt chc nng tnh
ton.
- Windows Form: gm cc lp i tng dnh cho vic xy dng cc ng
dng Windows based. Vic xy dng ng dng loi ny vn c h tr tt t
-

trc n nay bi cc cng c v ngn ng lp trnh ca Microsoft. Mt ng dng


Windows Form c th lm vic vi ng dng Web da vo Web service.

ThS. Nguyn Th Mai Trang

11

Bi ging Lp trnh giao din

Qu trnh bin dch v thc thi mt chng trnh .Net


2.3. Cc ngn ng trong VS 2010
Cc ngn ng lp trnh .NET ca Microsoft bao gm:
- Visual C#: L mt ngn ng mi, s dng c php tng t C++.
- Visual Basic: L ngn ng s dng c php ca Visual Basic, c thit k cho
.NET.
- Visual C++: ngn ng nn tng C++ cho php pht trin cc ng dng vi th vin
MFC v c .Net
- Visual F#: l mt ngn ng lp trnh hm dnh cho nh pht trin .NET, y l mt
ngn ng mi c tch hp vo Visual Studio 2010.
Cc ngn ng ny u c xy dng trn mt kin trc thng nht, do cc module
chng trnh c th xy dng bng cc ngn ng khc nhau.
2.4. Cc loi project trong VS 2010
-

Windows Forms Application


Class Library
Windows Control Library
ASP .NET Web Application / Service / Control Library
Console Application

ThS. Nguyn Th Mai Trang

12

Bi ging Lp trnh giao din


- Windows Service
- Windows Presentation (WPF)
- WCF Service Application
- Silverlight Application, Silverlight Class LibraryOthers
- Excel 2010 WorkBook
- Word 2010 Document
-
2.5. To project mi trong VS2010
C ba cch to mt project trong VS2010:
- 1. Chn File, NewProject

- 2. Click nt NewProject trn thanh cng c:

- 3. Click vo lin kt New Project trn trang Start Page:

ThS. Nguyn Th Mai Trang

13

Bi ging Lp trnh giao din


Ca s New Project xut hin. Ca s ny lit k cc mu c th c s dng xy
dng mt ng dng c t chc phn nhm theo ngn ng lp trnh
Trong khung bn tri, bn di phn Installed Templates, click Visual C#.
Trong khung gia, kim tra dng ch c chn trong combobox nm trn cng
bn tri l .NET Framework 4.0, sau click vo biu tng Windows Forms
Application

Trong Name, t tn project, trong phn Location chn ni lu tr project,


click nt OK hon tt

2.6. Cc thnh phn trong mt project

ThS. Nguyn Th Mai Trang

14

Bi ging Lp trnh giao din

Form1: ca s chnh ca ng dng c to ra


Ca s Solution Explorer: cha cc thnh phn c trong project, bao gm Project
References, Forms, Classes, Modules, Forder vi cc items
Error List: hin th kt qu bin dch v thng bo li (nu c)
Ca s Propeties: cho php thit lp cc thuc tnh cho Form v controls

ThS. Nguyn Th Mai Trang

15

Bi ging Lp trnh giao din

- Thanh Toolbox: Cha cc control c t chc thnh cc nhm chc nng, gip
ngi s dng thao tc mt cch trc quan thit k giao din bng cch ko th
cc control ln Form

ThS. Nguyn Th Mai Trang

16

Bi ging Lp trnh giao din

Ca s Server Explorer: Qun l cc kt ni ti c s d liu, hin th v qun l

cc phn t ca Server trong VS.Net IDE nh Event Logs, Message Queues


Lu : ty chn hin th hoc n cc thnh phn, trn menu View, chn cc
thnh phn mun hin th

ThS. Nguyn Th Mai Trang

17

Bi ging Lp trnh giao din

Bin dch, sa li, chy ng dng:

Bin dch: menu Build

Build Solution / Rebuild Solution: bin dch/bin dch li tt c cc project trong


ng dng
Build Project-name /Rebuild Project-name: bin dch project c tn Projectname (trong hnh trn l project c tn FirstProject)

ThS. Nguyn Th Mai Trang

18

Bi ging Lp trnh giao din

Sau khi bin dch, nu khng c li, kt qu bin dch xut hin dng ch Build
Succeeded

Nu c li xy ra, thng bo li s xut hin trong ca s Error List, double click


vo dng thng bo li chuyn n v tr b li

Thit lp cc thuc tnh cho Project: T menu Project, chn Project-name


Propeties, hoc click chut phi trn tn project trong ca s Solution Explorer,
chn Propeties

ThS. Nguyn Th Mai Trang

19

Bi ging Lp trnh giao din

Thit lp cc thuc tnh thng thng


nh ngha tn Assembly

ThS. Nguyn Th Mai Trang

20

Bi ging Lp trnh giao din


Namespace gc
u ra Project
i tng chy u tin
Import cc mc namespaces
Thit lp cc thuc tnh cu hnh
Thit lp Debug
Cc ty chn Build

- Thit lp cc tham chiu trong Project: Nhiu Project cn tham chiu n cc ng


dng khc hoc code ca cc th vin. thit lp tham chiu cho project, ta s
dng hp thoi Add Reference

ThS. Nguyn Th Mai Trang

21

Bi ging Lp trnh giao din

2.7. Trang Start Page

Trang StartPage: cha mt danh sch cc lin kt n cc ngun ti nguyn Visual Studio
2010 IDE v ngun ti nguyn trn web.Cc lin kt c t chc thnh cc thnh phn:
Recent Projects, Get Started, Latest News, Guidance and Resources c cha lin kt n
ThS. Nguyn Th Mai Trang

22

Bi ging Lp trnh giao din


cc ngun ti nguyn chng trnh hu ch. Nhp vo bt k lin kt trn Start Page s
hin th thng tin c lin quan lin kt vi cc lin kt c th.
- Phn Recent Projects cha thng tin v cc d n mi nht c to hoc sa i
gip m nhanh cc d n ny.
- Phn Get Started cha cc lin kt chuyn n cc trang hng dn s dng IDE
to ng dng v ti liu hc tp.
- Phn Guidance and Resources cha cc thng tin hng dn v cch s dng cc
ti nguyn trong .Net.
2.8. Minh ha xy dng ng dng vi Visual C#
Xy dng ng dng nh sau

- Yu cu: tm hiu mt s thuc tnh c bn ca Form v control


- Cc bc thc hin:
To project mi, chn ngn ng Visual C#, Windows Forms Application t
tn l AsimpleProgram

ThS. Nguyn Th Mai Trang

23

Bi ging Lp trnh giao din

Project mi c to gm mt form duy nht c tn l Form1


- Thit lp thuc tnh Form1:: click chut phi trn Form, chn Properties

- Thit lp cc thuc tnh sau:


BackColor: ty
Font: ty

ThS. Nguyn Th Mai Trang

24

Bi ging Lp trnh giao din


ForeColor: ty
Text: Simple Program
StartPosition: CenterScreen
TopMost: True
FormBorderStyle: FixedDialog
- Bin dch (Trn menu Build, chn Build Solution), chy chng trnh (Trn menu
Debug, chn Start Debug) v nhn xt
- Trong th mc Debug ca ng dng, ta thy xut hin file SimpleProgram.exe:

- Thay i cc thuc tnh khc, bin dch, chy li chng trnh, nhn xt.
- T ca s Toolbox, chn iu khin Label, ko th ln form

- Click chut phi trn Label, thit lp cc thuc tnh sau:


AutoSize: False
Font
ForeColor

ThS. Nguyn Th Mai Trang

25

Bi ging Lp trnh giao din


BackColor
BorderStyle
Text: Welcome to Visual C#!
TextAlign: MiddleCenter
- T thanh Toolbox, ko iu khin PictureBox th ln Form

- Chn PictureBox, trong bng Properties, click vo thuc tnh Image

- Ca s Select Resource xut hin:

ThS. Nguyn Th Mai Trang

26

Bi ging Lp trnh giao din

- Click vo nt Import chn mt nh, OK


- Thay i ln lt cc gi tr khc nhau cho thuc tnh SizeMode ca PictureBox,
sau chn gi tr ph hp
- Bin dch chng trnh v xem kt qu
Cu hi

ThS. Nguyn Th Mai Trang

27

Bi ging Lp trnh giao din

Chng II:

NGN NG LP TRNH C#
MC TIU

Phn bit v so snh c cc c im ca ngn ng C# v cc ngn ng lp trnh


hc (C++)
Thao tc thnh tho trong mi trng Visual Studio 2010 xy dng c ng
dng bng ngn ng C#
S dng c cc hnh thc trnh by gii thut gii quyt mt bi ton
S dng c c php v ngn ng C# trong lp trnh
Vn dng c k thut x l ngoi l pht hin v x l li chng trnh
1. Gii thiu ngn ng lp trnh C#
Microsoft Visual C # c Microsoft cng b nm 2000, l mt ngn ng mnh m
nhng n gin nhm mc ch ch yu l dnh cho cc nh pht trin to ra cc ng dng
bng cch s dng Microsoft.NET Framework. N c tha hng nhiu tnh nng tt
nht ca C ++ v Microsoft Visual Basic, nhng loi b nhng c php mu thun v li
thi, ng thi b sung nhiu tnh nng mi hiu qu hn
Cc c im ca ngn ng C#:
- L ngn ng c ngun gc t C, C++ nn c c php gn ging nh C++ nhng
n gin hn do loi b macro, template, a k tha
- L ngn ng hng i tng hon ton, h tr cc c trng c bn ca ngn ng
lp trnh hng i tng nh tnh ng gi (encapsulation), tnh a hnh
(polymorphism), tnh k tha (inheritance)
- L ngn ng h tr mnh m v cc c ch x l ngoi l, thu gom b nh t ng,
bo mt m ngun
- L ngn ng c th c dng xy dng nhiu loi ng dng nh web, dch v
web, x l vn bn, ha, bng tnh,...
- L ngn ng c t t kha, cc t kha trong C#:

ThS. Nguyn Th Mai Trang

28

Bi ging Lp trnh giao din

- Cc t kha c bit thng c s dng


T kha namespace: khai bo mt khng gian tn
L mt gi nhng thc th (c thit k thnh cc class) c thuc tnh v
hnh vi c lp vi bn ngoi.
Li ch ca namespace l trnh c s trng lp tn gia cc lp v cho
php t chc m ngun mt cch c khoa hc v hp l
T kha using: c s dng khai bo cc namespace, lm cho chng trnh
gn hn, khng cn phi vit tng namespace cho tng i tng.
V d: thay v phi vit:
System.Windows.Form.Button bt = new System.Windows.Form.Button ();
C th vit:
using System.Windows.Form;
//...
Button bt = new Button ();
T kha static: thng dng t trc khai bo hm, bin ca mt lp, c th
truy xut m khng cn to mt i tng ca lp.
2. Cc c im ca ngn ng C#
- i vi lp trnh trc quan:
Ngi s dng c th thao tc trc quan to ra giao din da vo cc i
tng nh hp hi thoi, button, vi cc thuc tnh nh dng phong ph
- i vi Lp trnh s kin:
Cung cp nhng i tng cho php xy dng chng trnh theo hng s kin
(Event-Driven Programming)

ThS. Nguyn Th Mai Trang

29

Bi ging Lp trnh giao din


Cc i tng thit k giao din u c h tr cc hm x l s kin (Form,
WebForm, Menu, Button, danh sch,).
- i vi Lp trnh hng i tng:
C# l mt ngn ng hng i tng hon ton.
Cho php xy dng cc lp (class) vi cc phng thc v thuc tnh mt cch
d dng
3. Cc bc xy dng mt ng dng bng C#
3.1. To project ng dng (Xem chng I, mc 2.5)
3.2. Cu trc mt chng trnh C#
Mt chng trnh C# c duy nht mt hm Main:

3.3. Thit k giao din


- Mi project mi c to c mt Form duy nht
- Drag mt i tng trn thanh ToolBox ko th vo Form
- Thay i thuc tnh i tng trong bng Properties

ThS. Nguyn Th Mai Trang

30

Bi ging Lp trnh giao din

3.4. Vit code


Chuyn sang phn code-behind (file.cs) bng mt trong cc cch sau:
- Click chut phi trn tn Form trong ca s Solution Explorer, chn View Code
- Nhp double chut trn Form
- Nhp double chut trn mt i tng trn Form

ThS. Nguyn Th Mai Trang

31

Bi ging Lp trnh giao din

Ni dung trang code behind:

3.5. Thm cc thnh phn vo project


Click chut phi trn tn project, chn Add

ThS. Nguyn Th Mai Trang

32

Bi ging Lp trnh giao din

3.6. Bin dch, thc thi


- M ngun C# (tp tin *.cs) c bin dch qua MSIL (tp tin exe, dll)
- MSIL c CLR thng dch qua m my

4. Cc kiu d liu trong C#


C# h tr hai kiu d liu:
- Kiu d liu gi tr (value): gm cc kiu d liu xy dng sn (Predefined types)
nh kiu s, k t, lun l, kiu d liu lit k, kiu cu trc (struct)

ThS. Nguyn Th Mai Trang

33

Bi ging Lp trnh giao din


- Kiu d liu tham chiu (reference): cc kiu d liu do ngi dng nh ngha:
class, interface, delegate, array
1.1. Cc kiu d liu xy dng sn:

4.2. Kiu d liu lit k (Enum):


- L kiu d liu c s dng nh l mt cch thc t tn cho cc gi tr nguyn
(tng t nh tp cc hng), lm cho chng trnh r rng, d hiu hn. V d,
biu din bn ma trong nm, ta c th s dng bn bin kiu s nguyn nh:
xuan=1, ha = 2, thu = 3, dong = 4. Tuy nhin, cc gi tr s ny khng mang ngha
lin quan n cc ma v thng kh nh. Ngn ng C# cung cp mt gii php
cho php nh ngha mt tp hp cc gi tr nguyn bi mt nh danh gi nh gi
l kiu d liu lit k.
- V d:

4.3. Kiu d liu cu trc


ThS. Nguyn Th Mai Trang

34

Bi ging Lp trnh giao din


- L kiu d liu c khai bo vi t kha struct nhm to ra mt kiu d liu mi
do ngi dng nh ngha. Cu trc l kiu d liu gi tr, c lu tr trn stack
trong b nh, c dng trong trng hp lu tr cc d liu tng i nh.
- Mt s cu trc c nh ngha sn trong .Net:

- Khai bo kiu cu trc: s dng t kha struct:

- Mt cu trc c th c cc trng, phng thc v phng thc khi to:

ThS. Nguyn Th Mai Trang

35

Bi ging Lp trnh giao din

Khng th khai bo mt phng thc khi to khng tham s cho mt cu trc


Cc thuc tnh ca cu trc u phi c khi to gi tr
Khi khai bo thuc tnh ca cu trc, khng th khi gn gi tr
Trng hp gi phng thc khi to ca cu trc vi t kha new, cc thuc tnh
cha khi tr s c t ng gn tr 0 hoc null. V d:

- V d s dng Struct

ThS. Nguyn Th Mai Trang

36

Bi ging Lp trnh giao din

S dng struct Location:

Kt qu:

ThS. Nguyn Th Mai Trang

37

Bi ging Lp trnh giao din

5. Bin, Hng
5.1. Bin:
- Bin l mt vng nh lu tr mt gi tr tm thi vi mt kiu d liu no
- Bin phi c khi to trc khi s dng
- Khai bo: [ modifier ] datatype identifier ;
modifier: t kha public, private, protected, ch nh mc truy cp ca bin,
nu khng c t kha pha trc, mc nh l private
datatype: kiu d liu
identifier: tn bin
V d:
int number;
double radius = 5.0;
- Tm vc ca bin:
Bin khai bo bn trong phng thc th c phm vi trong phng thc , gi
l bin cc b, khng th truy xut trong cc phng thc khc.
Bin khai bo bn trong thn ca mt lp th c phm vi l lp , c th truy
xut trong cc phng thc thuc lp.
Trong mt phm vi hot ng (scope), khng th c hai bin cng tn
V d:

ThS. Nguyn Th Mai Trang

38

Bi ging Lp trnh giao din


5.2. Hng:
- Hng tng t bin nhng gi tr ca hng khng thay i khi chng trnh thc
thi.
- Hng phi c khi to khi khai bo, v ch khi to duy nht mt ln trong sut
chng trnh v khng c thay i.
- Khai bo: s dng t kha const
<const> <type> <CONSTNAME> = <value>;
V d:
const double PI = 3.14158;
6. Ton t
- Ton t gn: =
- Ton t s hc: +, -, *, /, % (chia ly phn d)
- Ton t tng, gim: ++, --, +=, -=, *=, /=, %=
- Ton t quan h: ==, !=, >, >=, <, <= (Lu : phn bit = v ==)
- Ton t logic: && (and), || (or), ! (not)
7. Cu trc la chn
7.1. Cu lnh if n
- C php:
if (boolean_exp)
statement

- V d:
if ( grade >= 60 )
Console.WriteLine( "Passed" );

ThS. Nguyn Th Mai Trang

39

Bi ging Lp trnh giao din

7.2. Cu lnh if y
- C php:
if (boolean_exp)
statement1
else
statement2

- V d:
if ( grade >= 60 )
Console.WriteLine( "Passed" );
else
Console.WriteLine( "Failed" );

ThS. Nguyn Th Mai Trang

40

Bi ging Lp trnh giao din

7.3. if..else lng nhau


- Trong trng hp c kh nhiu la chn, cn s dng nhiu lnh if..else lng nhau,
chng ta nn s dng if ..else if
- V d: Thay v vit:
if (grade >= 90)
Console.WriteLine (A);
else
if (grade >= 80)
Console.WriteLine (B);
else
if (grade >= 70)
Console.WriteLine (C);
else
if (grade >= 60)
Console.WriteLine (D);
else
Console.WriteLine (F);

Ta nn vit:
if (grade >= 90)
Console.WriteLine (A);
else if (grade >= 80)

ThS. Nguyn Th Mai Trang

41

Bi ging Lp trnh giao din


Console.WriteLine (B);
else if (grade >= 70)
Console.WriteLine (C);
else if (grade >= 60)
Console.WriteLine (D);
else
Console.WriteLine (F);

Lu khi s dng if..else lng nhau:


Mt else lun kt hp vi if gn n nht
Nn s dng cc cp ngoc { } trong trng hp s dng if .. else lng nhau
V d: hai cch vit sau l nhp nhng, c th cho kt qu khng mong mun:
if (x > 5)
if (y > 5)
Console.WriteLine (x and y are > 5);
else
Console.WriteLine (x is < 5);
Hoc:
if (x > 5)
if (y > 5)
Console.WriteLine (x and y are > 5);
else
Console.WriteLine (x is < 5);
Nn vit li nh sau:
if (x > 5)
{
if (y > 5)
Console.WriteLine (x and y are > 5);
}
else
Console.WriteLine (x is < 5);

ThS. Nguyn Th Mai Trang

42

Bi ging Lp trnh giao din

Trong mt khi lnh if hoc else, nu cha t hai cu lnh, phi t trong cp
ngoc
{
}.
V d:
if ( grade >= 60 )
Console.WriteLine( "Passed" );
else
{
Console.WriteLine( "Failed" );
Console.WriteLine( "You must take this course again!" );
7.4. Cu lnh switch
- C php:
switch (testValue)
{
case <compareVal1>:
code to execute if testValue = compareVal1
break;
case <compareVal2>:
code to execute if testValue = compareVal2
break;
...
case <compareValN>:
code to execute if testValue = compareValN
break;
[default]:
code to execute if testValue != compareVals
break;
}
- V d:

ThS. Nguyn Th Mai Trang

43

Bi ging Lp trnh giao din

8. Cu trc lp
8.1. Vng lp for
- C php:
for ( initialization; loopCondition; increment )
statement
Initialization: bin chy c khi to gi tr
loopCondition: iu kin lp
true: thc hin lnh trong statement
false: thot khi vng lp
increment: bc lp
- V d:
for ( int counter = 1; counter <=10; counter ++)
Console.Write({0}, counter ++);

ThS. Nguyn Th Mai Trang

44

Bi ging Lp trnh giao din

8.2. Vng lp while


- C php:
initialization;
while ( loopCondition )
{
statement
increment;
}
iu kin loopCondition c kim tra trc
true: thc hin lnh trong statement, increment
false: thot khi vng lp
- V d:
int product = 3;
while (product <= 100)
product = 3 * product;

ThS. Nguyn Th Mai Trang

45

Bi ging Lp trnh giao din

8.3. Vng lp do .. while


- C php:
do
{
statement
} while (condition);
Thc hin lnh trong statement
Kim tra iu kin condition
true: thc hin bc lp tip theo
false: thot khi vng lp
- V d:
int counter =1
do
{
Console.Write ({0}, counter);
++ counter;
} while (counter <= 10);

ThS. Nguyn Th Mai Trang

46

Bi ging Lp trnh giao din

8.4. Lnh foreach


Dng duyt qua cc phn t ca mt mng, tp hp
Lnh foreach khng c bin m
S dng mt bin i din cho gi tr tng phn t
C php:
foreach (type identifier in arrayName)
{
// statement
}
type: kiu d liu
identifier: bin i din cho mi phn t trong mng
in: t kha
arrayName: tn mng
- V d: tnh tng cc phn t trong mng
int [ ] arrInt = {2 , 4, 5, 7, 8};
int sum = 0;
foreach (int number in arrInt)
-

ThS. Nguyn Th Mai Trang

47

Bi ging Lp trnh giao din


sum += number;
8.5. Lnh break, continue, return
- break: lnh thot khi vng lp v tip tc thc hin cc lnh tip ngay sau vng
lp.
- continue ngng thc hin cc cng vic cn li ca vng lp hin thi v quay v
u vng lp thc hin bc lp tip theo
- return: thot khi mt hm, tr quyn iu khin v pha triu gi hm (caller)
9. X l ngoi l
9.1. Gii thiu
- Ngoi l l mt pht sinh khng bnh thng trong qu trnh thc thi mt chng
trnh, cn gi l li
- Khi chng trnh thc thi, qu trnh sau lun c lp i lp li :
Thc hin mt tc v
Nu tc v khng thc hin mt cch chnh xc:
Thc hin x l li
Thc hin tc v tip theo
- C nhiu nguyn nhn sinh li chng trnh:
Thiu b nh
Thiu ti nguyn
Thao tc ngi s dng

- C th ngn chn hoc x l li bng cch nm bt cc ngoi l (exception)
- X l ngoi l vi try..catch..finaly
- C php:
try{
// cc lnh thc hin
}
catch ([Exception]){
// cc lnh x l li
}
finaly{
//cc lnh kt thc x l
}
- Cc cu lnh d sinh li t trong khi try { }
ThS. Nguyn Th Mai Trang

48

Bi ging Lp trnh giao din


- Cc lnh x l li t trong khi catch { }, c th s dng nhiu catch.
- Cc cu lnh trong khi finally { } lun c thc hin c trong hai trng hp c
hay khng c li pht sinh.
- Khi c li pht sinh, cc lnh tip theo trong khi try khng c thc hin m
chuyn sang cc lnh x l trong khi catch
- bt gi ngoi l, ta s dng cc i tng Exception
- V d:

ThS. Nguyn Th Mai Trang

49

Bi ging Lp trnh giao din


9.2. Lnh throw
- Lnh throw c dng pht ra mt tn hiu v s bt bnh thng lm pht sinh
mt ngoi l
- Khi ngoi l pht sinh, vic thc thi trong khi CLR s c dng v tm kim mt
trnh x l ngoi l, nu khng tm c mt trnh x l ngoi l no th chng
trnh s kt thc
- V d:

9.3. S dng checked v unchecked


- Kiu d liu s c phm vi thuc mt min gi tr xc nh, v d trong C#, kiu
integer c 32 bits (-2147483648 n 2147483647) . Trong qu trnh tnh ton, ngi
dng c th nhp mt s ln vt qu gi tr ln nht ca s nguyn, iu ny s
xy ra li "trn s".
- V d: ta c hm nhn hai s c vit nh sau:

ThS. Nguyn Th Mai Trang

50

Bi ging Lp trnh giao din

Kt qu khi nhp s qu ln v thc hin php nhn

- x l vn nu trn, chng ta c th s dng lnh checked. Lnh ny c s


dng kim tra v lm pht sinh ngoi l OverflowException khi c li trn s.
V d:

Kt qu khi nhn hai s kh ln:

ThS. Nguyn Th Mai Trang

51

Bi ging Lp trnh giao din

- Lnh unchecked: Hy b kim tra,


l OverflowException khi c li trn s.

khng

lm

pht

sinh

ngoi

V d:

9.4. Pht biu using


- c s dng m bo cc i tng c to v hy mt cch an ton
- V d:

ThS. Nguyn Th Mai Trang

52

Bi ging Lp trnh giao din

- Ta c th vit li nh sau:

9.5. Cc lp ngoi l thng dng

ThS. Nguyn Th Mai Trang

53

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

54

Bi ging Lp trnh giao din

Chng III:

HNG I TNG TRONG C#


MC TIU

M hnh ha c cc i tng trong th gii thc thnh cc lp i tng trong


C#
Xy dng v s dng cc i tng trong lp trnh gii quyt vn
1. Gii thiu v Lp trnh hng i tng
- Mc tiu ca vic thit k mt phn mm:
Tnh ti s dng (reusability): thit k cc thnh phn c th c s dng trong
nhiu phn mm khc nhau
Tnh m rng (extensibility): h tr cc plug-ins.
Tnh mm do (flexibility):
C th d dng thay i khi thm mi d liu, chc nng.
Cc thay i khng lm nh hng nhiu n ton b h thng
- Lp trnh hng th tc
c s dng trong ngn ng C, Pascal
Chng trnh l mt h thng cc th tc, hm
Cn xc nh cc hm, nh ngha cc hm v gi cc hm ny gii quyt vn
c t ra.
Nhc im:
Mi hm u c th truy cp bin ton cc
D liu c th phi truyn qua rt nhiu hm trc khi n c hm s
dng hoc thao tc trn n.
Kh kim sot khi chng trnh qu ln hoc khi pht trin, sa i chng
trnh.
Phi nh cc hm xy dng sn khi s lng hm qu nhiu
- Lp trnh hng i tng (Object Oriented Programming )
Ly i tng lm nn tng xy dng chng trnh.
i tng l s gn kt gia d liu ca i tng v cc hm (phng thc)
thao tc trn cc d liu ny.
i tng = D liu + Phng thc
Khi vit chng trnh theo phng php hng i tng ta thit k cc lp i
tng v chc nng ca chng c th tr li cc cu hi:
Chng trnh lin quan ti nhng lp i tng no?
Mi i tng cn c nhng d liu v thao tc no?
Cc i tng quan h vi nhau nh th no trong chng trnh?
- V d:
ThS. Nguyn Th Mai Trang

55

Bi ging Lp trnh giao din

- Qu trnh m hnh ha i tng trong th gii thc:

- Cc ngn ng lp trnh hng i tng u c ba c im chung l tnh ng gi


(encapsulation), tnh k tha (inheritance ) v tnh a hnh (polymorphism).
Tnh ng gi:
Rng buc d liu v phng thc thao tc trn d liu vo trong lp
d kim sot, lm tng tnh tru tng ca d liu.

ThS. Nguyn Th Mai Trang

56

Bi ging Lp trnh giao din


Ch cung cp mt s phng thc giao tip vi mi trng bn ngoi,
che du i ci t thc s bn trong ca lp
Tnh k tha
nh ngha mt lp i tng da trn lp khc nh ngha nhm tn
dng cc on m chng trnh c.
Lp mi ch vic b sung cc thnh phn ring ca chnh n hoc nh
ngha li cc hm ca lp c s khng cn ph hp vi n.
Tnh a hnh
S dng mt giao din chung cho nhiu phng thc khc nhau
Phng thc c th s c xc nh vo lc chy chng trnh, ty thuc
vo i tng ang thc thi giao din v gim phc tp ca chng
trnh
- Mt s khi nim
Lp (class): l mt kiu cu trc m rng, c nh ngha to nn mt kiu
d
liu
mi,
gm
cc
thuc
tnh,
phng
thc.
Mt s cc i tng c cng cc thuc tnh v hnh ng c th nhm vo trong
mt nhm coi nh mt lp. V d: nh xe my AirBlack, xe my Future, xe Lead
c th nhm vo thnh class Honda.
i
tng:
l
th
hin
ca
lp
V d:
Circle cir = new Circle();
double area = cir.Area();
Thuc tnh: thnh phn d liu m t i tng
Phng thc: m t v thc hin cc hnh vi ca i tng
2. Lp (class)
- Khai bo lp theo c php:
[ McTruyCp] class TnLp [:LpCS]
{
- Khai bo cc trng (khai bo bin)
- nh ngha cc phng thc, thuc tnh ca lp
}
Mc truy cp

ngha

Public

C th truy xut t mi ni

private (default)

Ch c truy xut trong ni b lp

ThS. Nguyn Th Mai Trang

57

Bi ging Lp trnh giao din


Ch c truy xut trong phm vi lp v cc lp tha k

Protected

- To i tng ca lp theo c php:


TnLp TnBiniTng;
TnBiniTng = new TnLp (DanhSchiS);
hoc
TnLp TnBiniTng = new TnLp (DanhSchiS);
V d:

3. Phng thc (method)


- Phng thc ca mt lp thng c dng m t v thc hin cc hnh vi ca
i tng lp
- Mi phng thc thng c nh ngha l mt hm, cc thao tc thc hin
hnh vi c vit bn trong ni dung ca hm.
- Khai bo phng thc trong C# tng t nh C++, ngoi ra, mi phng thc
thng c khai bo sau t kha public, private, protected,... v cc phng thc
u phi c khai bo trong mt class no .

ThS. Nguyn Th Mai Trang

58

Bi ging Lp trnh giao din


- Phng thc c tr tr v:

- Phng thc khng c tr tr v

4. Cc phng thc np chng


- L cc phng thc c cng tn nhng khc tham s
- Khi chng trnh thc thi, ty thuc vo li gi hm v i s truyn vo m
phng thc thch hp nht c gi

ThS. Nguyn Th Mai Trang

59

Bi ging Lp trnh giao din

5. Phng thc khi to (Constructor)


- L mt phng thc c bit c tn trng vi tn ca lp, thng c khai bo
vi t kha public.
- Khng c gi tr tr v
- c gi n mt cch t ng khi mt i tng ca lp c to ra.
- Dng khi to cc gi tr ban u cho cc thnh phn d liu ca i tng thuc
lp.
- Nu khng nh ngha phng thc khi to, trnh bin dch s t ng s dng
phng thc khi to mc nh.
- Cc thuc tnh khng c khi to trong phng thc ny s c khi to mc
nh
Kiu s: 0
Kiu lun l: false
Kiu i tng: null

ThS. Nguyn Th Mai Trang

60

Bi ging Lp trnh giao din

- Np chng phng thc khi to: L xy dng cc phng thc khi to khc tham
s

- Phng thc khi to sao chp: khi gn gi tr cho i tng mi bng cch sao
chp d liu ca i tng cng kiu tn ti.

6. Thuc tnh (Properties)


ThS. Nguyn Th Mai Trang

61

Bi ging Lp trnh giao din


- Properties l mt c tnh mi ca ngn ng C# lm tng sc mnh ca tnh ng
gi
- Cho php ly gi tr (get) v gn gi tr (set) cho cc thnh phn d liu ca lp
- Cho php truy cp n cc thnh phn d liu ca i tng mc c, ghi,
hoc c hai v che du ci t thc s bn trong lp
- Thuc tnh ch c: ch cho php truy xut d liu thuc lp mc ch c, s
dng t kha get

Cch s dng:
Hinhtron ht =new Hinhtron ();
ht.Bankinh = 10; //li
int bk = ht.Bankinh;
- Thuc tnh c v ghi: cho php truy xut d liu c hai mc c v ghi, s
dng t kha get, set

Cch s dng:
Hinhtron ht =new Hinhtron ();
ht.Bankinh = 10;
int bk = ht.Bankinh;

ThS. Nguyn Th Mai Trang

62

Bi ging Lp trnh giao din

7. Tham chiu this


- Tham chiu this c dng tham chiu n th hin hin hnh ca mt i tng
- Mi phng thc ca i tng u c th tham chiu n cc thnh phn ca i
tng thng qua tham chiu this
- Tham chiu this thng c dng :
Trnh xung t tn khi tham s ca phng thc trng tn vi tn bin d liu
ca i tng.
Dng truyn i tng hin ti lm tham s cho mt phng thc khc
Dng trong mc ch lm ch mc
Trnh xung t tn

S dng trong ch mc:

ThS. Nguyn Th Mai Trang

63

Bi ging Lp trnh giao din

8. D liu v phng thc tnh


- D liu v phng thc ca mt lp c khai bo sau t kha static gi l thnh
vin tnh.
- D liu v phng thc tnh c xem l ton cc trong phm vi mt lp v mi
i tng thuc lp u c th truy cp.
- D liu v phng thc tnh thng c dng trong trng hp cn lu cc gi
tr cc bin hoc cung cp cc phng thc dng chung cho cc lp khc nhau
trong ng dng
- Truy cp n d liu v phng thc tnh theo c php:
classname . variableName;
classname . methodName;
V d:
Math.PI;
String.Compare(str1, str2);
9. Cc cch truyn tham s
- Truyn bng tham tr (gi tr): tng t nh trong C++. Gi tr ca i s s c
sao chp vo tham s ca hm c gi.

ThS. Nguyn Th Mai Trang

64

Bi ging Lp trnh giao din


- Truyn bng tham chiu (reference):
c s dng khi ta mun nhn v nhiu gi tr t mt hm, s dng t
kha ref v t kha out
T kha out: truyn i s vo trong phng thc theo kiu tham chiu trong
trng hp khng cn khi gn gi tr ban u cho i s. Khi , trong phng
thc phi c lnh gn gi tr cho tham chiu ny.
V d:
Truyn tham chiu vi t kha ref

Truyn tham chiu vi t kha out:

10. K tha
- L c ch cho php nh ngha mt lp mi (cn gi l lp dn xut - drived class)
da trn mt lp c sn (cn gi l lp c s - base class), sau xy dng thm
cc thuc tnh v cc phng thc ring ca lp .

ThS. Nguyn Th Mai Trang

65

Bi ging Lp trnh giao din


- Lp dn xut c hu ht cc thnh phn ging nh lp c s (bao gm tt c cc
phng thc v bin thnh vin ca lp c s), ngoi tr cc thnh phn private,
phng thc khi to, phng thc hy v phng thc tnh.
- K tha thng c dng :
Phn nh mi quan h gia cc lp
Phn nh s chia s m lnh chng trnh gia cc lp, khng phi vit li m
lnh
- V d v s k tha:
Ging nhau
C chn
M t
C mt
Bit n
Hnh ng
Bit ng
Khc nhau
Ch
Chim
C rng
C m
M t
Bit sa
Bit ht
Hnh ng
Bit chy Bit bay

V d, xy dng hai lp m t v ch v chim, ta thy rng hai ng vt ny


c nhng c im chung (hnh trn), nh vy thit k hai lp c lp s c
nhng m lnh trng lp (c chn, c mt, bit n, bit ng). Thay v vy, ta c
th xy dng mt lp c tn l ng vt, cha cc trng v phng thc ging
nhau gia hai loi vt trn, sau ta xy dng hai lp ch v chim k tha t
lp ng vt v b sung vo mi lp cc trng v phng thc m t c im
ring ca chng
Lp ng vt
M t
Hnh ng
C chn
Bit n
C mt
Bit ng

M t
C rng

Lp Ch
Hnh ng
Bit sa
Bit chy

ThS. Nguyn Th Mai Trang

M t
C m

Lp Chim
Hnh ng
Bit ht
Bit bay

66

Bi ging Lp trnh giao din


- nh ngha lp dn xut:
class Tenlopdanxuat : Tenlopcoso
{
// ni dung
}
V d: ta c lp Point2D v lp Point3D k tha t lp Point2D nh sau:

S dng hai lp trn:

- Gi phng thc thit lp ca lp c s


V lp dn xut khng th k tha phng thc khi to (Constructor) ca lp
c s nn mt lp dn xut phi thc thi phng thc khi to ring ca mnh.
Nu lp c s c mt phng thc khi to mc nh (tc l khng c phng
thc khi to hoc phng thc khi to khng c tham s) th phng thc
khi to ca lp dn xut c nh ngha nh mt cch bnh thng.
Nu lp c s c phng thc khi to c tham s th lp dn xut phi nh
ngha phng thc khi to c tham s theo c php sau:
TnLpDnXut (ThamSLpDnXut): base(ThamSLpCS)
{

ThS. Nguyn Th Mai Trang

67

Bi ging Lp trnh giao din


// Khi to gi tr cho cc thnh phn ca lp dn xut
}
V d:

ThS. Nguyn Th Mai Trang

68

Bi ging Lp trnh giao din

Chng IV:

WINDOWS FORM V CC CONTROLS


MC TIU

S dng ng v hp l cc loi giao din ng dng


S dng thnh tho cc thuc tnh ca Form v control xy dng cc ng dng
p ng yu cu mc t c bn n nng cao
Nm bt v x l cc s kin trong Windows Form v cc control mt cch hp l
Thao tc thnh tho khi chuyn form v truyn d liu gia cc form
Xy dng v x l thnh tho ng dng dng MDI
1. Form
1.1. Cc thuc tnh v phng thc ca Form
1.1.1. Nhm thuc tnh nhn dng
- Name: Tn duy nht ca i tng Form trong Project
- Text: Chui hin th trn thanh tiu
- ShowIcon
True: Cho hin Icon gc trn bn tri
False: Khng hin icon
- ShowInTaskBar:
True: Khi chy hin biu tng trn TaskBar
False: Khng hin
- Icon: Cho php ch nh tp tin *.ico lm biu tng trn thanh tiu ca Form
1.1.2. Nhm thuc tnh nh dng
- BackColor: Mu nn ca Form
VD: Form1.BackColor=Color.Blue;
- ForeColor: Mu ca cc chui trn cc Control ca Form
- StartPossition: V tr hin th Form
- WindowStates:
Minimized (thu nh)
Maximized (phng to)
Normal (trng thi nh thit k)
- isMdiContainer:
True: Form c chn l MDI Form.
False: khng
ThS. Nguyn Th Mai Trang

69

Bi ging Lp trnh giao din


- TopMost:
True: form nm chng ln trn cc ca s khc
False: bnh thng
- Opacity: trong sut ca form, mc nh 100%.
- FormBorderStyle: dng thc kiu ng vin ca form
- MainMenuStrip: ch nh iu khin MenuStrip gn trn form
-
1.1.3. Cc phng thc ca Form
- Close (): ng form
- Hide (): n form
- Show (): Hin th form dng modeless-dialog (khi form hin th, ngi dng vn
c th thao tc c vi cc thnh phn khc trong cng mt ng dng)
- ShowDialog (): Hin th form dng modal-dialog (khi form hin th, ngi dng
khng th thao tc c vi cc thnh phn khc trong cng mt ng dng cho n
khi ng form)
1.2. Cc s kin trn Form
- FormClosed: S kin khi Form ng
- FormClosing: S kin khi ang ng Form
- Click: S kin khi click vo Form
- Activated: Xy ra khi Form c kch hot bng m hay do tc ng ca ngi s
dng
- Load: Xy ra khi np Form
- KeyPress: Xy ra khi 1 phm c nhn
- Resize: Xy ra khi thay i kch thc Form
-
ci t cc s kin cho form, trong bng properties, ta chn tab Events

ThS. Nguyn Th Mai Trang

70

Bi ging Lp trnh giao din

1.3. Thm mt form vo project


- Cch 1: t menu Project, chn Add Windows Form hoc Add New Item
- Cch 2: click chut phi trn tn project trong ca s Solution Explorer, chn Add
Windows Form hoc Add New Item

ThS. Nguyn Th Mai Trang

71

Bi ging Lp trnh giao din

1.4. To Form k tha


Form k tha (Inherited Form) l Form c to t mt Form tn ti, ta c th b
sung thm cc chc nng v cc thnh phn giao din cho Form k tha
- To Form k tha:

ThS. Nguyn Th Mai Trang

72

Bi ging Lp trnh giao din

- Sau khi click nt Add, ca s xut hin cho php ta chn form c k tha:

ThS. Nguyn Th Mai Trang

73

Bi ging Lp trnh giao din

- C th to nhanh form k tha bng cch to form bnh thng ri hiu chnh trong
phn code view ca form:

- V d: Ta c Form1 c thit k nh sau:

ThS. Nguyn Th Mai Trang

74

Bi ging Lp trnh giao din

- Form3 k tha t Form1 v c b sung mt s thnh phn giao din:

1.5. To form lc chng trnh thc thi


to ng mt form lc chng trnh thc thi, ta thc hin qua cc bc sau:
-

To i tng thuc class Form


Xy dng cc thuc tnh cho i tng
Gi phng thc Show, hoc ShowDialog
V d:

ThS. Nguyn Th Mai Trang

75

Bi ging Lp trnh giao din

2. Controls
2.1. Thm cc control vo Form
- S dng hp cng c Toolbox ko th cc control ln form trong mi trng
thit k giao din.
- Hp cng c Toolbox: Cung cp danh sch cc control lit k theo nhm, cho php
thit k giao din giao tip vi ngi dng.
- hin th hp cng c ToolBox, ta thc hin mt trong cc cch sau:
T menu View, chn Toolbox
Chn biu tng
trn thanh cng c
S dng t hp phm: Ctrl+W + X
- b sung mt control ln form, ta ko th biu tng ca control trc tip ln
form:

2.2. Cc thuc tnh chung ca control


- BackColor: Mu nn
- ForeColor: Mu ch trn control

ThS. Nguyn Th Mai Trang

76

Bi ging Lp trnh giao din


- Text: Chui hin th trn control
- Visible: n hay hin th control
- Name: Tn ca i tng control, dng truy xut cc thuc tnh v phng thc
ca control
- Locked: Kho khng cho di chuyn trn Form
- Enabled: V hiu ho hay cho php s dng
-
2.3. S kin chung ca cc control
- Click: Xy ra khi ngi dng nhn chut ln control
-

MouseMove: Xy ra khi ngui dng di chuyn chut qua vng lm vic ca control
MouseUp: Nhn chut trn control ri th ra
MouseDown: Nhn chut trn control
Move: Xy ra khi di chuyn control bng m hay s dng chut

- SizeChanged: Xy ra khi kch thc control c thay i bng m hay bi ngi


s dng
- Paint: Xy ra khi control c v li
-
2.4. T chc cc control trn Form
- Xp th t cc control:
T menu View, chn Tab Order, click chut ln lt trn cc control thay i
s
th
t
(l
th
t
cc
control
trn
Form)

- Sp xp cc control:
S dng menu Format

ThS. Nguyn Th Mai Trang

77

Bi ging Lp trnh giao din

dng

thanh

- Thay i thuc tnh cc control:


Click chut phi trn control, chn Properties
Chn cc thuc tnh cn thay i

cng

trn

ca

Properties

- nh v cc control:
S dng code: c th thit lp kch thc v v tr control thng qua cc thuc
tnh Size, Location, Top, Left, Width, Height
V d:
TextBox1. Location = new Point (100,50);
//v tr im gc trn tri ca textbox c ta (100,50)

ThS. Nguyn Th Mai Trang

78

Bi ging Lp trnh giao din


TextBox1. Size = new Sixe (250, 150);
// thit lp kch thc cho textbox vi chiu rng l 250 pixel, chiu cao l 150
pixel
hoc ta c th vit:
TextBox1. Left = 100;
TextBox1.Top = 50;
TextBox1. Width = 250;
TextBox1. Height = 150;
S dng thuc tnh Anchor : nh phm vi rng buc tng i gia cc i tng

Khi thc thi:

ThS. Nguyn Th Mai Trang

79

Bi ging Lp trnh giao din

Thay i kch thc form: textbox cng t thay i kch thc theo cc hng rng
buc:

ThS. Nguyn Th Mai Trang

80

Bi ging Lp trnh giao din


S dng thuc tnh Dock: neo dnh i tng ny vo cnh ca control cha n

ThS. Nguyn Th Mai Trang

81

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

82

Bi ging Lp trnh giao din

- X l cc s kin ca control:
Click chut phi trn control, chn Properties
Double click ln s kin trn tab Event trn ca s Properties

ThS. Nguyn Th Mai Trang

83

Bi ging Lp trnh giao din

3. Cc controls c bn
3.1. Label
- L loi control c dng trnh by vn bn dng tnh, thng dng ch
gii cho cc iu khin khc

- Mt s thuc tnh thng dng ca Label:


BorderStyle: ng vin ca iu khin
ThS. Nguyn Th Mai Trang

84

Bi ging Lp trnh giao din


Font: Kch thc v Font ch
TextAlign: Cn chnh vn bn trong Label
AutoSize: label t ng thay i kch thc theo di ca chui cha bn trong
n
3.2. TextBox
- L control c dng nhp d liu

- Mt s thuc tnh thng dng ca textbox:


BorderStyle: Kiu ng vin ca iu khin
CharacterCasing: nh dng chui nhp vo chuyn sang kiu ch hoa
(Upper), ch thng (Lower) hay mc nh (Normal)
Maxlength: S k t cho php nhp
MultiLine : True cho php nhp nhiu dng
PasswordChar: k t nhp c thay th bi k t khai bo trong thuc tnh
ny.
ReadOnly: True ch cho php c gi tr
ScrollBars: Nu thuc tnh MultiLine=true th cho php hin thanh trt hay
khng
Vertical - Cun dc,
Horizontal - Cun ngang,
Both - C 2 thanh cun,
None Khng c thanh cun)
WordWrap: T ng xung dng nu chui nhp vo di hn kch thc ca
iu khin
- Mt s s kin (bin c) trn textbox:
MouseClick: Xy ra khi Click vo Textbox
MouseDoubleClick: Xy ra khi Click p vo Textbox
TextChanged: bin c mc nh, xy ra khi khi chui trn iu khin b thay i,
y l s kin mc nh
3.3. Button
ThS. Nguyn Th Mai Trang

85

Bi ging Lp trnh giao din


- L control c dng nt lnh, khi click vo s thc thi mt tc v no .
- Button c th hin th chui hoc hnh nh (thit lp ti thuc tnh
BackgroundImage)

- Trong mi trng thit k giao din, ta c th double click ln button to s kin


p ng vi thao tc ngi dng click chut trn button

3.4. CheckBox
- L loi control cho php ngi s dng cng mt thi im c th chn nhiu la
chn
- Mt s thuc tnh ng ch :
Checked: True/False (c chn/ khng chn)
CheckState:
Checked
Unchecked,
Indeterminate
- Bin c mc nh: CheckedChanged

3.5. RadioButton
- Tng t CheckBox, nhng c s dng trong trng hp ch cho php chn mt
trong cc la chn

ThS. Nguyn Th Mai Trang

86

Bi ging Lp trnh giao din


- Lu : Mun to nhiu nhm RadioButton trn cng mt form, phi t cc
RadioButton cng nhm vo mt container cha (GroupBox, Panel,)

- Bin c mc nh:

3.6. PictureBox
- L loi control cho php hin th hnh nh (BMP, JPEG, GIF, PNG, metafile, icon)
- Mt s thuc tnh
Image: i tng Image hin th hnh
SizeMode:
AutoSize: t ng thay i kch thc theo nh
CenterImage: nh nm gia PictureBox
Normal: bnh thng
StretchImage: nh t ng thay i kch thc theo PictureBox
Zoom: nh StretchImage, nhng t l chiu rng v cao khng thay i
- V d
Bitmap myJpeg = new Bitmap(@"E:\coffee.jpg");
pictureBox1.Image = (Image)myJpeg;
Hoc:
pictureBox1.Image = Image.FromFile(@"E:\coffee.jpg");

ThS. Nguyn Th Mai Trang

87

Bi ging Lp trnh giao din

3.7. Tooltip
- L loi control dng hin th ch thch cnh cc control khi a tr chut n
control
- Mt s thuc tnh:
TooltipTitle: chui tiu Tooltip
TooltipIcon: biu tng hin th km theo chui

- S dng Tooltip
Ko biu tng Tooltip t ca s ToolBox ln Form
Hiu chnh cc thuc tnh (nu cn) trong ca s Properties
Nhp chui mun hin th thuc tnh Tooltip on ca control

ThS. Nguyn Th Mai Trang

88

Bi ging Lp trnh giao din

3.8. NumericUpDown
- L loi control cho php hin th s nguyn, ngi s dng c th tng, gim khi
chng trnh thc thi
- Mt s thuc tnh
Value: gi tr hin hnh trn iu khin
Increment: gi tr mi ln tng/gim
- Bin c mc nh: ValueChanged

3.9. iu khin VScrollBar, HScrollBar


- VScrollBar: thanh cun dc
- HScrollBar: thanh cun ngang
- Mt s thuc tnh
Value: gi tr hin hnh trn iu khin
Minimum: gi tr nh nht (cn di)
ThS. Nguyn Th Mai Trang

89

Bi ging Lp trnh giao din


Maximum: gi tr ln nht (cn trn)
- Bin c mc nh: Scroll

4. Cc control cha (Container)


L cc loi control c th cha cc iu khin khc, thng c s dng khi cn x
l chung mt nhm cc control nm trong loi control ny. Nhm control ny bao gm:
-

GroupBox
Panel, FlowLayoutPanel, TableLayoutPanel
TabControl
SplitContainer

- GroupBox:
Hin th mt khung bao quanh mt nhm control
C th hin th mt tiu
Khi xa mt GroupBox th cc control cha trong n b xa theo

ThS. Nguyn Th Mai Trang

90

Bi ging Lp trnh giao din

- Panel:
Cha nhm cc control
Khng c tiu
C thanh cun (scrollbar)

- TabControl:
L loi control cho php th hin nhiu trang (page) trn mt form duy nht, cc
control c cng nhm chc nng thng c sp xp trong cng mt trang
Mi trang cha cc control thnh mt nhm (group), c cha tiu trang
Click vo cc tiu chuyn qua li gia cc trang
thm, xa v hiu chnh mt trang trong TabControl, ta truy cp vo thuc
tnh TabPages v thao tc trong ca s TabPage Collection Editor

ThS. Nguyn Th Mai Trang

91

Bi ging Lp trnh giao din

5. Cc control dng danh sch


5.1. ListBox, CheckedListBox
iu khin dng danh sch, cho php chn mt hoc nhiu phn t

ThS. Nguyn Th Mai Trang

92

Bi ging Lp trnh giao din

- Mt s thuc tnh
Items: tp cc phn t trong danh sch
SelectedIndex: v tr phn t c chn
SelectedItem: phn t c chn
SelectedItems: tp cc phn t c chn
SelectionMode
None: khng cho php chn
One: ch cho php chn mt phn t
MultiSimple: cho php chn nhiu phn t, khng cn gi phm Ctrl, Shift
MultiExtended: cho php chn nhiu phn t, gi phm Ctrl, Shift
CheckedItems: tp cc phn t c check (CheckedListBox)
Sorted: Cho php xp th t
- Mt s phng thc
ClearSelected: b chn tt c
FindString: Tm mt chui trong ListBox bt u bi mt chui cn tm
FindStringExact: nh FindString, nhng tm chnh xc
GetSelected, GetItemChecked : cho bit phn t c chn?
SetSelected, SetItemChecked: chn mt phn t
GetItemCheckState (CheckedListBox): trng thi ang c check ca phn t
SetItemCheckState (CheckedListBox): thit lp trng thi check cho phn t
- Thm phn t vo danh sch:
list_name.Items.Add (text): thm chui text vo cui danh sch
list_name.Items.AddRange (array): thm cc phn t ca mng (array) vo
danh sch

ThS. Nguyn Th Mai Trang

93

Bi ging Lp trnh giao din


list_name.Items.Insert (index, string): chn chui (string) vo danh sch ti v
tr index

5.2. ComboBox
ComboBox cng l loi control dng danh sch tng t nh ListBox, ch khc dng
thc trnh by. Ngoi ra, ComboBox cn c mt s thuc tnh ring nh:
- DropDownStyle:
Simple: hin th danh sch x xung, l s kt hp gia TextBox v ListBox
DropDown: Hin th TextBox cho php nhp vo mt chui
DropDownList: Khng cho php nhp chui vo

MaxDropDownItems: s phn t c nhn thy khi x xung


5.3. ImageList
- L loi control cung cp tp hp nhng i tng image lm ngun cho cc control
khc nh ListView, TreeView
- Cc thuc tnh:
Images: cha tp cc nh trong ImageList
ColorDepth: su ca mu
ImageSize: kch thc nh
TransparentColor: xc nh mu l transparent
ThS. Nguyn Th Mai Trang

94

Bi ging Lp trnh giao din


- Thm nh vo ImageList bng ca s Images Collection Editor

- Cc bc s dng ImageList
Ko control ImageList t ToolBox th vo Form
Thit lp kch thc ca cc nh thng qua thuc tnh ImageSize

ThS. Nguyn Th Mai Trang

95

Bi ging Lp trnh giao din


B sung cc nh vo ImageList thng qua thuc tnh Images
S dng ImageList cho cc control
Khai bo ngun image l image list va to cho control, thng l thuc
tnh ImageList
Thit lp cc item/node vi cc ImageIndex tng ng
Vic thit lp c th mn hnh design view hoc code view
5.4. ListView
- L loi control trnh by cc phn t dng danh sch vi nhiu dng khc nhau

ThS. Nguyn Th Mai Trang

96

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

97

Bi ging Lp trnh giao din

- Mt s thuc tnh:
Columns: tp cc ct trong listview
Items: tp cc phn t trong listview
LargeImageList: Danh sch cc biu tng hin th trong listview ch View
=LargeIcon
SmallImageList: Danh sch cc biu tng hin th trong listview ch View
=SmallIcon
View: ch hin th ca ListView
ThS. Nguyn Th Mai Trang

98

Bi ging Lp trnh giao din


SelectedItems: tp cc phn t c chn trong ListView
- Thm ct vo ListView theo c php
listView1.Columns.Add(ColumnName", 200, HorizontalAlignment.Left);
- Thay i ch hin th ca ListView:
listView1.View = View.Details ;
- Thm cc phn t vo ListView
ListViewItem item = new ListViewItem(item1);
item.SubItems.Add(subitem1);
item.SubItems.Add(subitem2);
listView1.Items.Add(item);
- Xa mt phn t trong ListView
listView1.Items.Remove(item);
hoc
listView1.Items.RemoveAt(index);
vi
item l mt i tng ListViewItem
index l v tr phn t trong ListView

5.5. TreeView
- L loi control trnh by danh sch phn t dng phn cp

ThS. Nguyn Th Mai Trang

99

Bi ging Lp trnh giao din

- Mt s thuc tnh quan trng


Nodes: danh sch cc phn t trong TreeView
ImageList: danh sch cc biu tng hin th trong TreeView
SelectedNode: node ang c chn
TopNode: node cao nht trong TreeView
- Thm node vo TreeView
treeView.Nodes.Add
treeView.Nodes [level] . Nodes.Add
treeView.Nodes [level] . Nodes[level].Nodes.Add
6. Cc control khc
6.1.1. Month Calendar:
- L loi control c dng mt quyn lch

ThS. Nguyn Th Mai Trang

100

Bi ging Lp trnh giao din

- Thuc tnh
SelectionStart: ngy bt u danh sch chn
SelectionEnd: ngy cui danh sch chn
TodayDate: ngy hin ti (trn my tnh)
- Bin c mc nh: DateChanged
6.1.2. DateTimePicker:
- L loi control cho php chn ngy, l s kt hp ca hai control ComboBox v
MonthCalendar

- Thuc tnh:
Format: nh dng hin th
long, short, time, custom
CustomFormat:
dd: hin th 2 con s ca ngy
MM: hin th 2 con s ca thng
yyyy: hin th 4 con s ca nm
(xem thm MSDN Online)
MaxDate: gi tr ngy ln nht
MinDate: gi tr ngy nh nht

ThS. Nguyn Th Mai Trang

101

Bi ging Lp trnh giao din


Value: gi tr ngy hin ti ang chn
- Bin c mc nh: ValueChanged
6.1.3. LinkLabel:
- L mt label cha lin kt n mt URL, text file,
- S dng LinkLabel
linkLabel1.LinkVisited = True;
linkLabel1.Text = Click here go to Google;
linkLabel1.Links.Add(6, 4, "http://google.com.vn");

6.1.4. Timer:
- L loi iu khin cho php thc thi mt tc v sau mt khong thi gian
- Cc thuc tnh ca Timer:
Name: nh danh Timer
Enabled: true/false, start hoc stop timer
Interval: khong thi gian kch hot s kin tick c tnh bng mili giy
- S kin Tick: sau khong thi gian c thit lp thuc tnh Interval, mt s kin
c gi n ca s, cho php x l
6.1.5. RichTextBox:
- L loi iu khin cho php nhp vn bn tng t nh TextBox nhng cung cp
nhiu kh nng nh dng hn, c th nhp trc tip hoc ti ln t mt tp tin vn
bn dng txt, rtf, doc,...
- Mt s thuc tnh thng dng ca RichTextBox:
SelectedText: Chui vn bn c chn
SelectionFont: font ch c p dng cho phn vn bn c chn
SelectionColor: mu ch c p dng cho phn vn bn c chn
...
- Mt s phng thc:
CanFocus: kim tra trng thi RichTextBox c/khng nhn focus
CanPaste: kim tra RichTextBox c/khng th paste d liu
CanSelect
CanUndo
ThS. Nguyn Th Mai Trang

102

Bi ging Lp trnh giao din

Copy, Cut: sao chp, ct d liu c chn trong RichTextBox lu vo


Clipboard
Paste: dn d liu t Clipboard vo RichTextBox
SaveFile: lu d liu trong RichTextBox ra file.
...
V d s dng RichTextBox:

ThS. Nguyn Th Mai Trang

103

Bi ging Lp trnh giao din


7. UserControl
- Ngoi cc control c nh ngha sn, .Net Framework cho php nh ngha cc
control ring ca ngi s dng, cc control ny c th c s dng nh cc
control thng thng khc bng cch ko th t thanh Toolbox. User control c
to ra c th c s dng trong cc ng dng khc
- To user control: Project , Add User Control, mt UserControl c to ra ging
nh mt form nhng khng c tiu . Ta c th thit k giao din v thao tc trn
User control nh vi mt form thng thng
- To User control s dng trong ng dng khc

To mt Class Library project


Xa file Class1.cs c sinh t ng
Add mt UserControl vo project
Thc hin cc thao tc trn UserControl
Bin dch thnh cng, ng dng to ra 1 file dll
Trong ng dng khc, click chut phi trn thanh Toolbox, chn Choose item,
browse n file dll ni trn, OK.
Trn thanh Toolbox s xut hin biu tng ca user control
Sau khi bin dch thnh cng, user control s hin th trn thanh Toolbox cho
php ko th ln Form nh cc control khc

8. Thm cc control lc chng trnh thc thi


to ng cc control lc chng trnh thc thi, ta thc hin cc bc sau:
- To i tng control mun thm vo form
- Xy dng cc thuc tnh cho i tng (v tr: Location, Kch thc: Size,)
- Khai bo s kin cho control

ThS. Nguyn Th Mai Trang

104

Bi ging Lp trnh giao din


- Add i tng control vo danh sch Controls ca Form hoc Control cha (panel,
groupbox, tabcontrol)

9. Menu
- L loi control cho php t chc cc chc nng x l ca ng dng theo nhm (cn
gi l thc n)
- T chc phn cp ca menu:
Menu
Sub menu
Menu item

- To menu: s dng iu khin MenuStrip:

ThS. Nguyn Th Mai Trang

105

Bi ging Lp trnh giao din

- Mt s thuc tnh ca Menu


Text: chui hin th
Shortcut Keys: phm nng kt hp vi menu
Image: hnh nh hin th trn menu
AutoTooltip,...
- Cc loi menu item
MenuItem
ComboBox
TextBox
Separator

- S kin mc nh ca menu: Click

ThS. Nguyn Th Mai Trang

106

Bi ging Lp trnh giao din

10. Cc hp thoi thng dng ca Windows


10.1. Gii thiu chung
Cc hp thoi thng dng trong Windows l nhng lp hp thoi c thit k cho cc
mc ch s dng khc nhau nh:
- Hp thoi m file, lu file
-

Hp thoi chn font ch


Hp thoi chn mu
Hp thoi chn th mc
Hp thoi in n

ThS. Nguyn Th Mai Trang

107

Bi ging Lp trnh giao din


.

- Cch s dng cc loi hp thoi:


Trong thit k:
Ko th vo t thanh Toolbox

Thit lp cc thuc tnh trong ca s Properties


Gi phng thc ShowDialog, kim tra kiu tr v ca phng thc
ShowDialog x l:
DialogResult.OK: chp nhn thao tc
DialogResult.Cancel: hy thao tc
ThS. Nguyn Th Mai Trang

108

Bi ging Lp trnh giao din


S dng code:
Khai bo i tng ca lp hp thoi
Thit lp cc thuc tnh cho i tng
Gi phng thc ShowDialog, kim tra kiu tr v ca phng thc
ShowDialog x l:
DialogResult.OK: chp nhn thao tc
DialogResult.Cancel: hy thao tc
V d:
ColorDialog dlg =new ColorDialog();
if (dlg.ShowDialog()==DialogResult.OK)
{
//code
}
10.2. OpenFileDialog
- L loi hp thoi cho php chn v m file
- Lp OpenFileDialog k tha t lp FileDialog

ThS. Nguyn Th Mai Trang

109

Bi ging Lp trnh giao din


- S dng hp thoi OpenFileDialog
Ko biu tng OpenFileDialog t ca s ToolBox vo Form
Thit lp cc thuc tnh cho hp thoi
Filter: chui quy nh loi file c hin th trong danh sch cc file cho
php ngi dng chn
Multiselect: true / false: cho php chn nhiu file hoc ch ch mt file
Gi phng thc ShowDialog
Truy xut thuc tnh FileName (Multiselect = false) hoc FileNames
(Multiselect = true)

10.3. SaveFileDialog
- Tng t OpenFileDialog, l loi hp thoi cho php lu file ln a

ThS. Nguyn Th Mai Trang

110

Bi ging Lp trnh giao din

- S dng hp thoi SaveFileDialog:

10.4. FontDialog
ThS. Nguyn Th Mai Trang

111

Bi ging Lp trnh giao din


- L loi hp thoi cho php chn font ch
- Cc thuc tnh:

Font: font ch c chn


Color: mu ch c chn
ShowEffects: True/False: hin th/khng hin th khung Effects
ShowApply: True/False: hin th/khng hin th nt Apply
ShowColor: True/False: hin th/khng hin th combobox chn mu ch

- S dng hp thoi FontDialog:

- X l s kin nt Apply:

ThS. Nguyn Th Mai Trang

112

Bi ging Lp trnh giao din

10.5. ColorDialog
- L loi hp thoi cho php chn mu

- Cc thuc tnh:
AllowFullOpen: True/False: cho php/khng cho php ngi dng nh ngha
mt mu ty chn
FullOpen: True/False: cho php/khng cho php m hp thoi mu y
- S dng hp thoi ColorDialog:

ThS. Nguyn Th Mai Trang

113

Bi ging Lp trnh giao din

10.6. FolderBrowserDialog
- L loi hp thoi cho php chn th mc

- Cc thuc tnh:
Description: chui hin th trn hp thoi
SelectedPath: ng dn th mc c chn
ShowNewFolderButton: True/False: hin th/ khng nt to th mc
- S dung hp thoi FolderBrowserDialog:

ThS. Nguyn Th Mai Trang

114

Bi ging Lp trnh giao din


Kt qu hin th:

11. ng dng SDI MDI


11.1. Gii thiu:
- SDI (Single Document Interface): l loi ng dng m ti mt thi im, ta ch c
th lm vic vi mt ti liu duy nht. i din cho loi ng dng ny l cc ng
dng nh:
NotePad
WordPad
Paint

- MDI (Multi-Document Interface): l loi ng dng m ti mt thi im, ta c th
lm vic vi nhiu ti liu. i din cho loi ng dng ny l cc ng dng nh:
Word
Excel
PowerPoint

11.2. ng dng SDI
- Trong ng dng c nhiu form, cc form thng c mi lin quan hoc tng tc
vi nhau
- Cc thao tc thng gp trong ng dng c nhiu form:
Truyn d liu gia cc form
ThS. Nguyn Th Mai Trang

115

Bi ging Lp trnh giao din


Chuyn form
- Cch truyn d liu gia cc form
S dng phng thc khi to:

S dng Properties:

ThS. Nguyn Th Mai Trang

116

Bi ging Lp trnh giao din

- Cch chuyn form:


Mt s phng thc m v ng form:
Show(): Khi form hin th, c th thao tc vi cc form khc trong cng ng
dng
ShowDialog():
Form c gi hin th dng modal dialog, buc ngi s dng phi thao
tc vi form, khng th thao tc vi cc thnh phn khc ca ng dng
trc khi ng form
Phng thc ShowDialog() tr v i tng DialogResult, thng dng
p ng xc nhn hnh ng ca ngi dng
Hide(): n form
M form: To i tng form tn ti, gi phng thc Show hoc
ShowDialog
V d: T Form1 m Form2 v n Form1
Form2 f = new Form2();
f.Show();
this.Hide();
ThS. Nguyn Th Mai Trang

117

Bi ging Lp trnh giao din


S dng Property kiu i tng chuyn form:

S dng bin i tng static:

ThS. Nguyn Th Mai Trang

118

Bi ging Lp trnh giao din

11.3. ng dng MDI


ng dng MDI gm c cc thnh phn c bn nh:
- Mt form chnh ca ng dng (thng gi l form cha hay main form)
- t nht mt form con (cn gi l child form). Cc form con ny khi m s nm trong
form cha.
- Menu chnh ca ng dng nm trn form cha, menu ny cha cc chc nng cho
php m cc form con

ThS. Nguyn Th Mai Trang

119

Bi ging Lp trnh giao din

- MDI Form (form cha form cha):


Form cha cc form khc
Thit lp thuc tnh isMdiContainer = true
C th s dng code:
Form frm=new Form();
Frm. isMdiContainer=true;
Frm.Show();
- Child Form (form con):
Form nm trong MDI Form
Phi khai bo thuc tnh MdiParent ng vi MDI Form
V d:
Form2 Frm = new Form2 ();
Frm. MdiParent = this;
Frm.Show ();
T kha this ch form hin hnh (form gi n Form2) l MDI Form
- Mt s thuc tnh ca form thng dng trong ng dng MDI:
IsMdiChild: True/False, cho bit mt form c phi l form con hay khng
MdiParent: i tng form, xc nh form cha ca mt form
ThS. Nguyn Th Mai Trang

120

Bi ging Lp trnh giao din


ActiveMdiChild: i tng form, tr v form con ang active
IsMdiContainer: True/False, xc nh form c phi l MDI parent hay khng
MdiChildren: Danh sch cc form con
- Sp xp cc form con:
S dng phng thc LayoutMdi, phng thc ny nhn vo mt tham s l gi
tr MdiLayout enumeration
MdiLayout.Cascade
MdiLayout.TileHorizontal
MdiLayout.TileVertical
V d:
this.LayoutMdi(MdiLayout.TileVertical);
- Duyt qua cc Child form:
Mi phn t trong danh sch MdiChildren l mt Child form, ta c th dng lnh
foreach duyt qua cc form con
V d: duyt v ng tt c cc Child Form:

- Cc bc to ng dng MDI:
To form cha (MDI parent form)
Thit k form con ty theo yu cu ca ng dng, c th b sung cc menu trong
cc form con ny
B sung vo form cha mt New menu item c th gi cc form con (child
form)
Trn (merge) v sp xp cc menu ca form cha v form con
Gi form con trong s kin click ca menu New
- V d xy dng ng dng MDI

ThS. Nguyn Th Mai Trang

121

Bi ging Lp trnh giao din


To

form

cha

(main

form):

Thm vo form cha mt iu khin MenuStrip:

Thm vo project mt Form mi lm form con (FrmChildForm)


Thm vo FrmChildForm mt PictureBox, thit lp cc thuc tnh sau:
Name: picImage
Dock: Fill
SizeMode: Zoom
Vit code cho s kin Load ca FrmChildForm:

ThS. Nguyn Th Mai Trang

122

Bi ging Lp trnh giao din


Trong class FrmMain, vit code cho s kin menuExit_Click v menuNew_Click:

Bin dch v chy ng dng, click nhiu ln ln menu New (hoc Ctrl+N), ta s
thy kt qu nh sau:

ThS. Nguyn Th Mai Trang

123

Bi ging Lp trnh giao din


B sung vo form frmChildForm mt iu khin MenuStrip v cc menu item
sau:
File (Name: menuFile, Text: &File)
File Load (Name: menuLoad, Text: &Load)
File Clear (Name: menuClear, Text: &Clear)

Vit code cho s kin menu Load v Clear:

Bin dch li, chy ng dng, ta thy trn menu ca ng dng xut hin c hai
menu File ca form cha v form con:

Cch hin th nh trn hon ton khng hp l, do , ta phi thc hin thao tc
trn cc mc menu li vi nhau, thc hin nh sau:
Trn child form, thit lp li cc thuc tnh menu:
ThS. Nguyn Th Mai Trang

124

Bi ging Lp trnh giao din


menuFile: MergeAction = MatchOnly
menuStrip1: Visibed =False
menuLoad: MergeIndex = 1, MergeAction: Insert
menuClear: MergeIndex = 2, , MergeAction: Insert
Trn main form, thit lp li cc thuc tnh menu:
menuNew: MergeIndex = 0
menuExit: MergeIndex = 3
Bin dch li v chy ng dng, kt qu hin th nh sau:

Sp xp cc child form: khi m nhiu form con, d dng thao tc, ta cn phi
sp xp li cc form con, thc hin nh sau:
Trn form FrmMain, b sung thm cc menu item
o Windows (Name: menuWindow, Text: &Windows)
o Windows, Cascade
Name: menuCascade

ThS. Nguyn Th Mai Trang

125

Bi ging Lp trnh giao din


Text: Cascade
o Windows, TileHorizontal
Name: menuTileH,
Text: Tile Horizontal
o Windows, TileVertical
Name: menuTileV
Text: Tile Vertical

Vit code cho cc s kin menu Windows:

Bin dch li v chy ng dng, kt qu nh sau:

ThS. Nguyn Th Mai Trang

126

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

127

Bi ging Lp trnh giao din

Chng V:

S KIN BN PHM V CHUT


MC TIU

Nm bt v x l cc s kin t bn phm
Nm bt v x l cc s kin t chut
1. S kin bn phm (Keyboard)
1.1. Gii thiu
- Khi ngi dng nhn hoc nh mt phm trn ca s chng trnh, chng trnh s
nhn c cc s kin, ng dng s gi cc hm x l tng ng vi cc s kin
va pht sinh.
- Trong mt ng dng Windows Form, cc s kin v phm bao gm:
KeyPress: xy ra khi phm c nhn, sau s kin KeyDown v trc s kin
KeyUp
KeyDown: xy ra khi mt phm c nhn
KeyUp: xy ra khi mt phm c nh

ThS. Nguyn Th Mai Trang

128

Bi ging Lp trnh giao din


1.2. KeyPress
- S kin KeyPress c pht sinh khi ngi dng nhn mt phm k t. Hm x l
s kin ny nhn vo mt i s l i tng ca lp PressEventArgs cha m
ASCII ca phm c nhn.
- KeyPressEventArgs khng cha thng tin v trng thi cc phm chc nng nh
Shift, Alt, CtrlV vy s kin KeyPress thng c s dng x l cc k t
d liu ca bn phm.
- Hai thuc tnh quan trng ca lp KeyPressEventArgs:
KeyChar: m ASCII ca k t c nhnKey
Handled: True/False: cho bit s kin KeyPress c c x l/cha x l. Nu
cha x l, ng dng s x l mc nh.

- X l s kin KeyPress trn form:


Khai bo hm x l s kin KeyPress
Thit lp thuc tnh KeyPreview = True
Trong tab Event, double click ln s kin KeyPress

ThS. Nguyn Th Mai Trang

129

Bi ging Lp trnh giao din

- X l s kin KeyPress trn control:


Khi chng ta nhn mt phm trn cc control cho php nhp d liu (TextBox,
ComboBox), s kin KeyPress ca cc control ny cng c pht sinh v cch
x l tng t nh i vi Form
V d: x l s kin KeyPress trn TextBox, ch cho php nhp s:

ThS. Nguyn Th Mai Trang

130

Bi ging Lp trnh giao din

Char.IsDigit (key): tr v True nu key l k t s


Char.IsControl (key): tr v True nu key l k t iu khin
1.3. S kin KeyUp, KeyDown
- S kin KeyDown c pht sinh khi mt phm c nhn
- S kin KeyUp c pht sinh khi phm c nh
- Hm x l hai s kin ny nhn vo i s l i tng ca lp KeyEventArgs, c
cha s thng tin v cc k t non-character (Shift, Ctrl, Alt, PgUp, PgDn,)
- Cc thuc tnh ca lp KeyEventArgs
Alt, Control, Shift : phm tng ng c nhn
KeyCode: Tr v mt gi tr trong enum Keys tng ng vi mt phm c
nhn. V d nhn phm A, th KeyCode s tr v Keys.A
KeyData: Gi tr kiu Keys kt hp bi nhiu phm (cc phm modifier v phm
thng thng) kim tra t hp phm, s dng KeyData.
V d:
if (e.KeyData == (Keys.Control | Keys.A)) { //... }
KeyValue: Gi tr ca KeyCode theo kiu integer
Modifiers: xc nh c cc phm no c nhn (SHIFT, CTRL v ALT), ch
tr v cc gi tr ca cc phm SHIFT, CTRL, ALT v None , c th kim tra kt
hp
cc
phm
bng
ton
t
OR
|.
V d:
ThS. Nguyn Th Mai Trang

131

Bi ging Lp trnh giao din

- X l s kin KeyDown, KeyUp:


Khai bo hm:

Hm x l:

1.4. V d v x l s kin bn phm


- To form v thit k giao din nh sau:

ThS. Nguyn Th Mai Trang

132

Bi ging Lp trnh giao din

- Khai bo cc s kin KeyPress, KeyDown, KeyUp v vit code:

- Chy ng dng v nhn th cc phm, xem kt qu:

ThS. Nguyn Th Mai Trang

133

Bi ging Lp trnh giao din

2. S kin chut (Mouse)


- Cc s kin v chut bao gm:
MouseClick: click chut ln Form/Control
MouseDoubleClick: nhp p chut trn form
MouseDown: nhn phm chut
MouseMove: con tr chut di chuyn
MouseUp: nh phm chut
MouseWheel: cun nt gia chut
MouseEnter: con tr chut i vo phm vi iu khin
MouseHover: con tr chut dao ng trn iu khin
MouseLeave: con tr chut ri khi iu khin
- Cc hm x l s kin chut (MouseClick, MouseDoubleClick, MouseDown,
MouseUp, MouseMove) nhn vo i s l i tng ca lp MouseEventArgs, k
tha t lp System.EventArgs
- Lp MouseEventArgs bao gm cc thuc tnh cha cc thng tin lin quan n cc
s kin chut nh phm no ca chut c nhn, v tr con tr chut,...
- Mt s thuc tnh ca lp MouseEventArgs:
Button: cho bit nt no ca chut c nhn

ThS. Nguyn Th Mai Trang

134

Bi ging Lp trnh giao din

Clicks: s ln nhn phm chut


X: ta x ca v tr con tr chut
Y; ta y ca v tr con tr chut
Location: v tr con tr chut theo Point
Khai bo v x l s kin chut trn form:

- Vit code x l s kin:

ThS. Nguyn Th Mai Trang

135

Bi ging Lp trnh giao din

- V d s dng chut di chuyn i tng trn form


Thit k giao din nh sau:

Khai bo cc hm x l s kin MouseDown, MouseUp, MouseMove trn


pictureBox1:

ThS. Nguyn Th Mai Trang

136

Bi ging Lp trnh giao din

Vit code x l:

ThS. Nguyn Th Mai Trang

137

Bi ging Lp trnh giao din


Bin dch v chy chng trnh, dng chut r qu bng th vo hnh ch nht
mu xanh, nh chut, xem kt qu

ThS. Nguyn Th Mai Trang

138

Bi ging Lp trnh giao din

Chng VI:

MNG CHUI

MC TIU
M t, khi to v s dng thnh tho kiu d liu mng trong lp trnh
M t, khi to v s dng thnh tho cc kiu d liu tp hp trong .Net
M t, khi to v s dng thnh tho kiu d liu chui trong lp trnh
S dng thnh tho lp StringBuilder khi thao tc ng vi chui
1. Mng
1.1. Gii thiu v mng
- Mng l mt tp hp c th t ca nhng i tng c cng mt kiu d liu.
- Cc phn t trong mng c truy xut theo tn v v tr, ch s bt u bng zero.
V d: mng s nguyn c tn l c, gm 12 phn t:

- Trong C#, mng l kiu d liu tham chiu, c xem l mt i tng bao
gm cc phng thc, thuc tnh
- C nhiu loi mng: mng mt chiu, mng nhiu chiu,
- Trong ngn ng C#, nhng i tng Array l i tng ca kiu System.Array
- Cc thuc tnh c bn ca class Array:
Length: thuc tnh chiu di ca mng
ThS. Nguyn Th Mai Trang

139

Bi ging Lp trnh giao din


Rank: thuc tnh s chiu ca mng
- Cc phng thc c bn ca class Array:
BinarySearch(): tm kim trn mng mt chiu sp th t.
Clear(): thit lp cc thnh phn ca mng v 0 hay null.
Copy(): sao chp mt vng ca mng vo mng khc.
Reverse(): o th t ca cc thnh phn trong mng mt chiu
Sort(): sp xp gi tr trong mng mt chiu
GetLowerBound(): tr v cn di ca chiu xc nh trong mng
GetUpperBound(): tr v cn trn ca chiu xc nh trong mng
SetValue(): thit lp gi tr cho mt thnh phn xc nh trong mng.
1.2. Khai bo mng
- C php: type[ ] array-name;
V d:
int [] pins;
- Khai bo v cp pht vng nh cho mng vi t kha new:
V d:
int [] pins= new int [4]; //to mng s nguyn gm 4 phn t

- Khai bo v khi to cc phn t mng:


V d:
string [ ] arrColors = { "Red", "Green", "Blue" };
int [ ] pins = new int [4]{ 9, 3, 7, 2 };
Random r = new Random ();
int [ ] pins = new int [4] { r.Next() % 10,
r.Next() % 10,
r.Next() % 10,
r.Next() % 10 };
1.3. Lm vic vi mng
ThS. Nguyn Th Mai Trang

140

Bi ging Lp trnh giao din


- Xc nh s phn t mng: s dng thuc tnh Length
V d:
int size = arrayInt.Length;
- Sp xp mng: nu cc thnh phn ca mng l kiu nh ngha trc (predefined
types), ta c th sp xp tng dn bng cch gi phng thc static Array.Sort()
V d:
int [] arrayInt = { 5, 7,3, 8, 2 }:
Array.Sort (arrayInt );
Kt qu: th t cc phn t trong mng arrayInt s l 2, 3, 5, 7, 8
- Duyt mng:
Duyt tng phn t da vo ch s nh C++:

Dng lnh foreach duyt qua tng phn t trong mng

ThS. Nguyn Th Mai Trang

141

Bi ging Lp trnh giao din


1.4. Truyn mng cho phng thc
- Truyn mng nh tham s cho phng thc bng cch truyn vo tn ca mng
(khng c ngoc [ ])
- Mng lun c truyn bng tham chiu
V d:

o Trong hm Test, sau li gi ModifyArray, mng array s cha cc phn


t {2, 4, 6, 8, 10}
- Truyn mng bng tham tr:
S thay i gi tr cc phn t mng trong phng thc s nh hng n i
tng ngoi phng thc
S thay i tham chiu ca bin trong phng thc khng nh hng n i
tng ngoi phng thc.
V d:

- Truyn mng bng tham chiu


S thay i tham chiu ca bin trong phng thc s nh hng n i tng
ngoi phng thc.
V d:

ThS. Nguyn Th Mai Trang

142

Bi ging Lp trnh giao din

1.5. Mng nhiu chiu


- Mng cn phi c hai hoc nhiu ch s mi xc nh c mt phn t ca mng
c gi l mng nhiu chiu, ph bin nht l mng hai chiu.
- Mng hai chiu l mng cn hai ch s xc nh c mt phn t. Mng hai
chiu c chia thnh hai loi: mng hnh ch nht v Zagged array.
- Mng hnh ch nht: c dng bng, trong cc hng c cng kch thc (c
cng s ct). Mi phn t trong mng c xc nh qua hai ch s: hng v ct
theo quy c: ch s th nht l hng, ch s th hai l ct ca phn t, u bt u
=0

- Khai bo mng hai chiu hnh ch nht theo c php: type[ , ] array-name;
V d:
int [ , ] arrInt = new int [2,3];
//khai bo v cp pht vng nh cho mng s nguyn arrInt hai hng, ba ct
int [ , ] arrInt = { { 1, 2 }, { 3, 4 } };
//khai bo v khi tr cho mng s nguyn arrInt hai hng, hai ct
int [ , ] arrInt = new int [ , ] { {1,2}, {3,4}, {5,6}, {7,8}};

ThS. Nguyn Th Mai Trang

143

Bi ging Lp trnh giao din


//khai bo v khi tr cho mng s nguyn arrInt bn hng, hai ct
string[ , ] arrString = { { "Lennon", "John" },
{ "McCartney", "Paul" },
{ "Harrison", "George" },
{ "Starkey", "Richard" } };
//khai bo v khi tr cho mng chui (string) arrString bn hng, hai ct
- Duyt mng hai chiu:
S dng phng thc GetLenght ( n ) truy xut s phn t ca mi chiu
S dng hai vng lp for duyt qua cc hng v ct tng t c php C++

- Zagged array: l mng hai chiu, trong mi hng l mt mng v kch thc
cc phn t trong mi hng l khng bng nhau. Vi kiu mng ny, cc hng phi
c khai bo tng minh.

Duyt mng Zagged array: s dng lnh foreach

ThS. Nguyn Th Mai Trang

144

Bi ging Lp trnh giao din

1.6. Cc lp tp hp thng dng


1.6.1. Gii thiu
- Mng l kiu d liu cho php chng ta lu tr mt tp hp cc phn t mt cch
kh hiu qu. Tuy nhin, mng cng c mt s hn ch i vi ngi lp trnh nh:
Kch thc ca mng khng th thay i khi chng trnh thc thi
Cc phn t lu trong mng phi c cng kiu d liu
Khi thm hoc xa cc phn t trong mng, ta phi duyt v di cc phn t lin
quan
...
- .NET framework cung cp mt th vin cc lp vi cc phng thc cho php thao
tc vi tp hp mt cch d dng nh:
Lp ArrayList
Lp Hashtable
Lp SortedList
Lp Queue
Lp Stack
...
- Cc lp trn nm trong namespace System.Collections. Do , s dng cc lp
tp hp ny, chng ta phi khai bo: using System.Collections;
1.6.2. Lp ArrayList:
- L lp lu tr tp hp cc i tng theo kiu mng, cc phn t c truy xut
thng qua ch s.
- Kch thc ca ArrayList c th thay i lc thc thi.
- ArrayList c th lu cc phn t thuc cc kiu d liu khc nhau.

ThS. Nguyn Th Mai Trang

145

Bi ging Lp trnh giao din


- Kch thc mc nh ca ArrayList l 0. Nu cc phn t c lp y, kch thc
ca ArrayList s t ng tng gp i.
- ArrayList cho php lu gi tr null cng nh gi tr trng lp.
- Mt s phng thc ca lp ArrayList:

Add: thm mt phn t vo cui danh sch


Insert: chn mt phn t vo danh sch ti v tr c ch nh
Remove: xa phn t khi danh dch
RemoveAt: xa phn t khi danh sch theo v tr
Contains: kim tra mt phn t c thuc danh sch hay khng (True: c, False:
khng)
IndexOf: tr v ch s ca mt phn t trong danh sch
Sort: sp xp danh sch i vi nhng kiu d liu nh ngha trc
- Mt s thuc tnh ca lp ArrayList:
Count: s phn t trong danh sch
Capacity: s phn t m ArrayList c th cha
- V d s dng ArrayList:

Kt qu

1.6.3. Lp SortedList - Hashtable:


- SortedList:

ThS. Nguyn Th Mai Trang

146

Bi ging Lp trnh giao din


L lp danh sch kiu t in, trong mi phn t cha trong n c xc nh
thng qua hai trng Key v Value.
Cc phn t cha trong SortedList s t ng c xp th t da vo trng
Key
- Lp Hashtable: tng t SortedList, nhng cc phn t khng c t ng sp
xp do thao tc trn Hashtable nhanh hn so vi SortedList.
- V d s dng SortedList:

1.6.4. Lp Stack:
- L loi danh sch m cc phn t c t chc nh mt ngn xp theo th t LIFO
(LastIn First Out)
- Thao tc thm phn t vo Stack v ly phn t ra khi Stack u c thc hin
ti mt u ca danh sch.

- V d s dng Stack:

ThS. Nguyn Th Mai Trang

147

Bi ging Lp trnh giao din

1.6.5. Lp Queue:
- L loi danh sch m cc phn t c t chc nh mt ngn xp theo th t FIFO
(First In First Out)
- Cc phn t c thm vo cui danh sch v c ly ra t u danh sch

- V d s dng Queue:

ThS. Nguyn Th Mai Trang

148

Bi ging Lp trnh giao din

2. Chui (String)
2.1. Gii thiu
- Chui l mt dy cc k t Unicode lin tip nhau trong b nh v khng th thay
i. V vy, cc phng thc p dng ln chui khng lm thay i ni dung bn
thn chui gc m ch c th tr v mt chui mi.
- Trong .NET, chui l kiu d liu tham chiu, mi chui l mt i tng ca lp
string.
- .Net Framework cn cung cp lp System.String l lp c thit k lu tr
chui, bao gm cc phng thc v thuc tnh, trong c rt nhiu cc phng
thc static cho php ngi lp trnh c th thao tc v x l chui mt cch d dng.
- Mt s k hiu chui c bit:
K hiu \ : thng t trc cc k t c bit hin th chng, nh:

ThS. Nguyn Th Mai Trang

149

Bi ging Lp trnh giao din

V d:

K hiu @:
Dng t trc tn bin khi tn bin trng vi t kha trong C#.
V d:

int @new = 10;


Dng thay th k t \ cch vit t nhin hn
V d:

o Thay v vit:
string path = D:\\Baitap;
o Ta c th vit:
string path = @D:\Baitap;
o Thay v vit:
string literalTwo = "Line One\nLine Two";

ThS. Nguyn Th Mai Trang

150

Bi ging Lp trnh giao din


o Ta c th vit:
string literalTwo = @"Line One
Line Two";

2.2. Phng thc khi to ca lp string (string constructor)


- Lp string cung cp tm phng thc khi to cho php to chui vi nhiu cch
khc nhau.

- V d s dng phng thc thit lp ca class string:

ThS. Nguyn Th Mai Trang

151

Bi ging Lp trnh giao din

2.3. Cc phng thc ca lp String


2.3.1. Phng thc static (public static):
- Compare: so snh 2 chui (<. >,=?)
- Concat: ni 2 chui
- Copy: to mt bn sao ca mt chui
- Equals: true/false cho bit hai chui c bng nhau hay khng
- Format: nh dng xut cho chui
- Join: ghp ni chui t mt mng chui
2.3.2. Phng thc thnh vin ca lp:
- CompareTo: so snh mt chui vi chui khc
-

EndsWith: true/false, xc nh chui kt thc ca mt chui?


StartsWith: true/false, xc nh chui bt u ca mt chui?
Equals: true/false, kim tra mt chui c bng vi mt chui khc?
Insert: chn vo chui mt chui khc
Remove: xa cc k t trong mt chui
LastIndexOf: v tr tm thy ca k t trong chui t cui chui
Split: tch chui

ThS. Nguyn Th Mai Trang

152

Bi ging Lp trnh giao din


- SubString: tr v mt chui con t mt chui
- ToCharArray: sao chp mt s k t t chui sang mng
- ToLower: tr v chui k t thng t mt chui
- ToUpper: tr v chui k t hoa t mt chui
- Trim: tr v chui c ct b khong trng u v cui t mt chui
- TrimStart: tr v chui c ct b khong trng u t mt chui
- TrimEnd: tr v chui c ct b khong trng cui t mt chui
2.4. Cc thao tc vi chui
2.4.1. So snh chui:
- S dng ton t ==
- S dng phng thc Equal
V d:
bool bRes = s1.Equal (s2);
bRes = true: s1 = s2
bRes = false: s1 != s2
- CompareTo
V d:
int result = s1.CompareTo (s2);
result < 0: s1 > s2
result = 0: s1 = s2
result >0: s1 < s2
- V d v so snh chui:

ThS. Nguyn Th Mai Trang

153

Bi ging Lp trnh giao din

2.4.2. Trch chui: s dung phng thc SubString


- SubString (int index): tr v chui con bt u t v tr index
- SubString (int index, int leng): tr v chui con gm leng k t bt u t v tr
index
- V d:

2.4.3. Ni chui:
- S dng ton t +
- S dng String.Concat (string s1, string s2)
- V d:

ThS. Nguyn Th Mai Trang

154

Bi ging Lp trnh giao din

2.4.4. Tm chui con:


Mt s phng thc xc nh v tr chui con/k t trong chui:
- LastIndexOf: v tr xut hin cui cng ca 1 chui con hoc k t trong chui
- LastIndexOfAny: v tr xut hin cui cng ca bt k 1 hoc 1 tp k t trong chui
- IndexOf: v tr xut hin u tin ca 1 chui con hoc k t trong chui
- IndexOfAny: v tr xut hin u tin ca bt k 1 hoc 1 tp k t trong chui
C php: public int IndexOfAny ( char [] anyOf, int startIndex, int count )
V d:
const string value1 = "Darth is my enemy.";
const string value2 = "Visual Basic is hard.";
int index1 = value1.IndexOfAny(new char[] { 'e', 'B' });
string s1 = value1.Substring(index1);
//s1 = enemy.
int index2 = value2.IndexOfAny(new char[] { 'e', 'B' });
string s2 = value2.Substring(index2);
//s2 = Basic is hard.
2.4.5. Thay th chui con trong chui:
- S dng phng thc Replace(string oldValue, string newValue)
2.4.6. Loi b khong trng / k t trong chui

ThS. Nguyn Th Mai Trang

155

Bi ging Lp trnh giao din


- Trim:tr v chui loi b cc k t trng hoc cc k t nm trong mng tham
s
- TrimStart: tr v chui loi b cc k t trng u chui
- TrimEnd: tr v chui loi b cc k t trng cui chui
- V d:

2.4.7. Loi b chui con trong chui: s dung phng thc Remove
- Remove (int index)

ThS. Nguyn Th Mai Trang

156

Bi ging Lp trnh giao din


- Remove (int index, int count)
- V d:

2.4.8. Tch chui vo mng: s dng phng thc Split


- V d:

ThS. Nguyn Th Mai Trang

157

Bi ging Lp trnh giao din

2.4.9. Rp chui t mng: s dng phng thc Join


- V d:

ThS. Nguyn Th Mai Trang

158

Bi ging Lp trnh giao din

2.5. Lp StringBuilder
Lp String cung cp rt nhiu phng thc cho php x l chui, tuy nhin vn hn
ch do khng th thay i ng ni dung v kch thc chui. khc phc nhc im
ny ca lp string, .Net Framework cung cp lp StringBuilder cho php to, thao tc v
x l i vi chui khi chng trnh thc thi.
- Khai bo v khi to i tng StringBuilder::
StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder(int leng)
StringBuilder sb = new StringBuilder(string s)
StringBuilder sb = new StringBuilder(string s, int leng)
...
- Mt s thuc tnh ca class StringBuilder:

ThS. Nguyn Th Mai Trang

159

Bi ging Lp trnh giao din


Lenght: chiu di hin ti ca chui
Capacity: dung lng ti a m chui c th cha.
- Mt s phng thc ca class StringBuilder:
Append: ni mt chui vo cui chui
AppendFormat: nh dng chui khi ni vo
Insert: chn mt chui vo cui chui
Replace: thay th tt c th hin ca mt k t bng cc k t khc
EnsureCapacity: m bo (thit lp li) kch thc hin ti m i tng
StringBuilder c th cha.
- Cc thao tc vi class StringBuilder:
V d thay i kch thc chui khi chng trnh thc thi, s dng phng
thc EnsureCapacity:

- V d ni chui s dng phng thc Append:

ThS. Nguyn Th Mai Trang

160

Bi ging Lp trnh giao din

V d s dng phng thc AppendFormat:

ThS. Nguyn Th Mai Trang

161

Bi ging Lp trnh giao din

V d s dng phng thc Insert, Remove:

ThS. Nguyn Th Mai Trang

162

Bi ging Lp trnh giao din

V d s dng phng thc Replace:

ThS. Nguyn Th Mai Trang

163

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

164

Bi ging Lp trnh giao din

Chng VII:

LM VIC VI FILE V TH MC
MC TIU

o To, c, ghi v cp nht c file


o S dng c lp File v Directory truy xut c thng tin v file
v th mc lu tr trn my tnh
o Thao tc thnh tho khi truy cp file tun t
o S dng c cc lp FileStream, StreamReader, StreamWriter c
v ghi file text
o S dng c lp FileStream v BinaryFormater c v ghi cc i
tng vo file
1. Lp File, Directory v Stream
1.1. Gii thiu:
- Khi mun c hay ghi d liu vo/ra tp tin hay mun truyn d liu t my ny
sang my khc, ta phi t chc d liu theo cu trc tun t cc byte hay cc gi
tin . iu ny d lin tng d liu nh l cc lung d liu chy t t ngun
n ch.
- Th vin .NET Framework cung cp lp Stream v cc lp k tha) chng
trnh c th s dng trong cc thao tc nhp xut d liu nh c/ghi tp tin, truyn
d liu qua mng
- Mt s lp Stream thng dng:
Stream: Lp tru tng, cung cp chc nng c/ghi d liu theo bye
BinaryReader: c d liu nh phn
BinaryWriter: Ghi d liu nh phn
File, FileInfo, Directory, DirectoryInfo: cung cp cc phng thc cho php
thao tc vi tp tin v th mc nh to, xa, i tn, lit k file v th mc,...
FileStream: c/ ghi tp tin theo c ch ng b / bt ng b, mc nh l
ng b.
TextReader, TextWriter: lp tru tng cho php c, ghi k t
StringReader, StringWriter: k tha t TextReader, TextWriter, ci t thm
cc phng thc c, ghi chui.
1.2. Lp File:
- Mt s phng thc static ca class File:
AppentText: ghi ni dung vn bn vo cui file
Copy: sao chp file
CreateText: to file vn bn

ThS. Nguyn Th Mai Trang

165

Bi ging Lp trnh giao din

Delete: Xa file
Exists: kim tra s tn ti ca file
GetCreationTime: tr v i tng DateTime l thi im file c to
GetLastAccessTime: tr v i tng DateTime l ln cui cng truy cp file
GetLastWriteTime: tr v i tng DateTime l ln cui cng cp nht ni
dung file
Move: di chuyn file
Open: m file
OpenRead: m file ch c
OpenText: m file vn bn
OpenWrite: m file ghi
1.3. Lp Directory:
- Mt s phng thc ca class Directory:
CreateDirectory: to th mc
Delete: Xa th mc
Exists: kim tra s tn ti ca th mc
GetCreationTime: tr v i tng DateTime l thi im th mc c to
GetLastAccessTime: tr v i tng DateTime l ln cui cng truy cp th
mc
GetLastWriteTime: tr v i tng DateTime l ln cui cng cp nht ni
dung th mc
Move: di chuyn th mc
2. Lm vic vi file v th mc
2.1. c, ghi tp tin nh phn:
- S dng lp c s Stream. Lp Stream c rt nhiu phng thc nhng quan trng
nht l nm phng thc Read(), Write(), BeginRead(), BeginWrite() v Flush().
- Thc hin nh sau:
To i tng Stream c hoc ghi
S dng phng thc File.OpenRead c v File.OpenWrite ghi vo tp
tin
V d:

ThS. Nguyn Th Mai Trang

166

Bi ging Lp trnh giao din

2.2. c, ghi tp tin vn bn:


S dng hai lp StreamReader v StreamWriter
- StreamReader: dc tp tin vi cc hm Read, ReadLine
- StreamWriter: ghi vo tp tn vi cc hm Write, WriteLine
- V d:

ThS. Nguyn Th Mai Trang

167

Bi ging Lp trnh giao din

2.3. To, xa, di chuyn file:


S dng cc phng thc static ca lp File:
- File.Create( "file_name" );
- File.Delete( "file_name" );
- File.Move ( "source_file" , "dest_file" )
2.4. To, xa, di chuyn th mc:
S dng cc phng thc static ca lp Directory:
- Directory.CreateDirectory ( "dir_name" );
- Directory.Delete( "dir_name" );
- Directory.Move ( "source_dir" , "dest_dir")
2.5. Truy xut thng tin ca file:
S dng cc phng thc static ca lp File:
-

File.GetCreationTime("file_name");
File.GetLastAccessTime("file_name");
File.GetAttributes("file_name");
File. GetLastWriteTime ( "file_name");

ThS. Nguyn Th Mai Trang

168

Bi ging Lp trnh giao din


2.6. Truy xut thng tin ca th mc:
S dng cc phng thc static ca lp Directory
- Directory.GetCreationTime("dir_name");
- Directory.GetLastAccessTime("dir_name");
- Directory.GetAttributes("dir_name");
- Directory.GetLastWriteTime( "dir_name" );
2.7. Lit k file v th mc con trong th mc:
S dng cc phng thc static ca lp Directory
- Directory.GetFiles ("dir_name");
- Directory.GetDirectories ("dir_name");
- V d s dng class File v Directory truy xut v lit k thng tin file v th mc:
Thit k giao din:

Vit code:

ThS. Nguyn Th Mai Trang

169

Bi ging Lp trnh giao din

Khai bo v vit code cho s kin KeyDown trn textbox txtInput:

ThS. Nguyn Th Mai Trang

170

Bi ging Lp trnh giao din

3. Serialization
mt qu trnh chuyn i mt cu trc d liu hoc i tng thnh mt
nh dng c th lu tr c vo file, b nh, hoc vn chuyn thng qua mng.
V d: ta c th to mt i tng hnh trn v v trn giao din chng trnh, sau
lu thnh file.
- Deserialization:qu trnh phc hi d liu lu trong file tr li trng thi ban u. V
d: c file lu i tng hnh trn trc , v li trn giao din.
-

Serialize l

ThS. Nguyn Th Mai Trang

171

Bi ging Lp trnh giao din

.NET Framework cung cp 2 k thut serialize:


Binary serialize (serialize nh phn): cch ny gi nguyn kiu d liu, thch hp
cho vic gi nguyn cu trc i tng. C th dng k thut ny chia s i
tng gia cc ng dng bng cch serialize vo vng nh clipboard; hoc
serialize vo cc lung, a t, b nh, trn mng ; hoc truyn cho my tnh
xa nh mt tham tr ("by-value object")
XML v SOAP Serialize: ch serialize cc thuc tnh public, v khng gi
nguyn kiu d liu. Tuy nhin XML v SOAP l cc chun m nn k thut
khng b cc hn ch v giao tip gia cc ng dng.
- Attribute [Serializable] v [NonSerialized]:
Cc i tng c s u c kh nng serialize. i vi cc i tng do ngi
dng nh ngha, i tng c th serialize, ta cn khai bo
attribute [Serialize]cho lp i tng . Mun loi tr mt thnh phn (method,
field, property,) khng mun c serialize, c th nh du chng bng
attribute [NonSerialize]
- Cc formatter c s dng serialize trong .Net u c thc thi
interface IFormatter trong namespace System.Runtime.Serialization
BinaryFormatter: Serialize i tng thnh mt tp tin nh phn, thuc
namespace System.Runtime.Serialization.Formatters.Binary
SoapFormatter: Serialize i tng thnh nh dng XML truyn ti thng
tin gia cc ng dng qua mng thng qua giao thc HTTP. Do l dng vn bn
nn dung lng d liu to ra s nng hn so vi BinaryFormatter, thuc
namespace System.Runtime.Serialization.Formatters.Soap
Interface IFormatter ch c hai phng thc l Serialize() v Deserialize()
- Cc bc Serialization:
Thit k lp kh tun t
Khai bo cc namespace cn thit
ThS. Nguyn Th Mai Trang

172

Bi ging Lp trnh giao din


using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
To i tng stream
FileStream stream = new FileStream(filename",
FileMode.Create, FileAccess.Write);
To i tng BinaryFormatter
BinaryFormatter bf = new BinaryFormatter();
Gi phng thc Serialize
bf.Serialize(stream, objclass);
- Cc bc Deserialization:
Khai bo cc namespace cn thit
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
To i tng stream
FileStream stream = new FileStream(filename",
FileMode.Open,FileAccess.Read);
To i tng BinaryFormatter
BinaryFormatter bf = new BinaryFormatter();
Gi phng thc Deserialize
objclass = (objclass) bf. Deserialize(stream);

ThS. Nguyn Th Mai Trang

173

Bi ging Lp trnh giao din

Chng VIII: HA
MC TIU
Trnh by c cc thnh phn quan trng trong th vin GDI+ c s dng
v
S dng cc i tng thuc lp Graphics v ng, v v t mu cc i tng
hnh hc, hin th vn bn v hnh nh.
Dng chut v
1. Gii thiu th vin GDI+
- GDI + c pht trin t GDI (Graphics Device Inteface), ch c trong .Net
Framework.
- GDI + l mt th vin cung cp cc lp:cho php lm vic vi cc i tng
ha 2D, v v t mu i tng, hin th vn bn, hnh nh v thc hin cc php
bin i nh rt hiu qu.
- Th vin .NET Framework cha cc lp lin quan n thao tc v trong
namespace: System.Drawing
- GDI+ cung cp cc lp th vin cho php thc hin tin trnh v, bao gm cc
bc:
- Xc nh phm vi (b mt) v
H thng ta :

Cc cu trc d liu nh Rectangle, Point, Size


- To cc cng c v
C t (Brush)

ThS. Nguyn Th Mai Trang

174

Bi ging Lp trnh giao din


Bt v (Pen)
Phng ch (Font)
Mu sc (cu trc Color)
- Thc hin cc thao tc v v t mu
S dng cc phng thc thuc lp Graphics

- Mt s i tng GDI:
Color: l mt cu trc d liu th hin mu sc, l s kt hp gia 4 gi tr:
AGRB
R: Red
G: Green
B: Blue
A: Alpha: trong sut ca mu.
Gi tr mi thnh phn t 0-255
o Mu 24 bt: RGB: 28282828 = 224 bt
o Mu 32 bt: ARGB: 28282828 = 232 bt
ThS. Nguyn Th Mai Trang

175

Bi ging Lp trnh giao din


To i tng Color t cc gi tr ARGB: s dng phng thc
Color.FromArgb
Color red =Color.FromArgb(255, 0, 0);

To i tng Color t mt chui tn mu xc nh: s dng phng thc


Color.FromName
Color green =Color.FromName( Green );
Point: l cu trc d liu xc nh mt im trong mt phng vi hai thuc tnh
x, y. Ta c th to mt i tng Point thng qua cc phng thc khi to sau:
public Point(int);
v d: Point pt1 = new Point(10);
public Point(Size);
v d: Point pt2 = new Point( new Size(20, 20) );
public Point(int, int);
v d: Point pt3 = new Point(30, 30);
Rectangle: l mt cu trc d liu xc nh v tr, kch thc mt vng hnh ch
nht trong mt phng.
Cc thuc tnh ca Rectangle:
o Left, Right: gi tr x ca ta im bn tri v phi cab hnh ch
nht
o Top, Bottom: gi tr y ca ta im bn trn v di ca hnh ch
nht
o Width, Height: chiu rng, cao ca hnh ch nht
o X, Y: gi tr x, y (int) ca ta im gc trn bn tri ca hnh ch
nht
o Location: ta im (Point) gc trn bn tri ca hnh ch nht
o IsEmpty: kim tra hnh ch nht rng (ta 4 im u bng 0: True)
o Size: tr v i tng Size cho bit kch thc ca hnh ch nht

ThS. Nguyn Th Mai Trang

176

Bi ging Lp trnh giao din

Cc phng thc ca Rectangle:


o Contains: kim tra mt im c nm trong HCN?
o Inflate: thay i kch thc HCN theo cc chiu
o Offset: thay i v tr HCN
o Ceiling: chuyn RectangleF Rectangle vi cc gi tr ta c lm
trn ln
o Round: chuyn RectangleF Rectangle vi cc gi tr ta c lm
trn
o Truncate: chuyn RectangleF Rectangle vi cc gi tr ta c
lm trn xung
Size: l mt cu trc d liu xc nh kch thc mt vng hnh ch nht, vi
hai thuc tnh Width, Height.
Size size =new Size ( 300, 200 );
2. Lp Graphics
- Lp Graphics L thnh phn chnh ca GDI+, cung cp cc ti nguyn v phng
php thao tc vi cc i tng ha
- Mt s thuc tnh lp Graphics
Clip: get/set phm vi bn v
ClipBounds: tr v cu trc Rectangle l phm vi bn v
DpiX, DpiY: tr v phn gii ca i tng ha tnh theo inch
PageUnit: get/set n v h thng ta
SmoothingMode: get/set ch lm mn ca i tng ha:
AntiAlias: chng rng ca
HighQuality: cht lng cao
HighSpeed: tc cao
ThS. Nguyn Th Mai Trang

177

Bi ging Lp trnh giao din


- To i tng Graphics
S dng thuc tnh Graphics c truyn cho OnPaint()
S dng phng thc CreateGraphics() ca form, control
Ly t i tng dn xut t Bitmap
Gi hm Invalidate() sinh s kin v li ca s, t ng gi hm OnPaint()

- Mt s phng thc v v t mu ca lp Graphics:

3. Lm vic vi cc i tng ha
3.1. Brushes
Brushes l i tng c s dng t mu vng bn trong ca hnh, t mu vn bn,
c nh ngha trong khng gian tn:
System.Drawing: Brushes, SolidBrush
ThS. Nguyn Th Mai Trang

178

Bi ging Lp trnh giao din


System.Drawing.Drawing2D:
o HatchBrush
o TextureBrush
o LinearGradientBrush
o PathGradientBrush
Cc lp c t:
o Brushes
o Brush (SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush,
PathGradientBrush)
3.1.1. class Brushes:
- L mt lp khng c k tha
- Cung cp hn 140 thuc tnh t mu chun (standard colors)

- V d s dng class Brushes:

ThS. Nguyn Th Mai Trang

179

Bi ging Lp trnh giao din


3.1.2. class SolidBrush: l loi c t mt mu ng nht
- to mt SolidBrush, ta s dng phng thc khi to ca lp.
- V d:

3.1.3. class HatchBrush: l loi c t c hiu ng nn


- Ta c th to mt HatchBrush t hai phng thc khi to:
public HatchBrush(HatchStyle, Color);
public HatchBrush(HatchStyle, Color, Color);
Trong , HatchStyle l cc kiu nn nh bng sau:

ThS. Nguyn Th Mai Trang

180

Bi ging Lp trnh giao din

- V d:

3.1.4. class TextureBrush: l loi c t c nn l mt i tng Image

ThS. Nguyn Th Mai Trang

181

Bi ging Lp trnh giao din


- Lp ny c cc thuc tnh:
Image: nh nn
WrapMode: Clamp, Tile, TileFlipX, TileFlipY, and TileFlipXY
- V d:

- Cc kiu WrapMode:

ThS. Nguyn Th Mai Trang

182

Bi ging Lp trnh giao din

ThS. Nguyn Th Mai Trang

183

Bi ging Lp trnh giao din

3.1.5. class LinearGradientBrush: l loi c t pha trn gia hai mu


ThS. Nguyn Th Mai Trang

184

Bi ging Lp trnh giao din


- Ta c th to mt LinearGradientBrush bng phng thc khi to sau:
LinearGradientBrush (Rectangle, Color, Color, LinearGradientMode)
LinearGradientMode l hng pha trn, gm cc gi tr sau:
o Horizontal
o Vertical
o BackwardDiagonal
o ForwardDiagonal
- V d:

3.1.6. class PathGradientBrush:


- L loi c t c to t mt i tng GraphicsPath, c th pha trn nhiu mu
- V d:

ThS. Nguyn Th Mai Trang

185

Bi ging Lp trnh giao din


4. Pens
Pen - cn gi l bt v, l i tng c dng v ng thng, ng cong, ng
vin cho cc i tng, thng c kt hp trong cc phng thc Draw ca lp
Graphics, c hai lp bt v, l Pens v Pen.
4.1.1. class Pens:
- Bao gm cc thuc tnh static, cha hu ht cc mu chun (standar color)
-

V d s dng Pens:

4.1.2. class Pen:


- Lp cho php to i tng Pen da vo cc phng thc khi to sau:
public Pen( Brush brush ): to i tng Pen t i tng Brush, vi dy nt
v l 1 pixel
public Pen( Color color ): to i tng Pen t i tng Color, vi dy nt
v l 1 pixel
public Pen( Brush brush, float width ): To i tng Pen t i tng Brush,
vi dy nt v l width
public Pen( Color color, float width ): To i tng Pen t i tng Color, vi
dy nt v l width
- V d s dng Pen:

ThS. Nguyn Th Mai Trang

186

Bi ging Lp trnh giao din

5. Fonts
- Windows h tr hai loi phng ch: GDI fonts v device fonts.
- Device fonts c ngun gc t cc thit b u ra nh mn hnh, my in,
- GDI fonts c lu tr trong cc tp tin trn h thng, thng cha trong th mc
Windows\Fonts.
- Mi font c tp tin ring, v d, Arial, Arial Black, Arial Bold, Arial Italic, Italic
Arial Black, Arial Bold Italic, Arial Narrow, Italic Arial Narrow Bold, v Arial
Narrow Italic,

ThS. Nguyn Th Mai Trang

187

Bi ging Lp trnh giao din

- Th vin GDI+ cung cp cc lp font cho php thit lp font ch khi xut vn bn
l Font v FontFamily
- class FontFamily: cung cp cc loi font ch c nh ngha sn s dng trong
kt xut vn bn, lp ny cha cc thuc tnh nh
Name: tn font ch
Families: mng cha tt c cc font families trong thit b ng cnh
- class Font: l lp cho php to i tng font ch vi mt s thuc tnh nh kiu
ch (m, nghing, gch di,...), kch thc,... class Font cung cp kh nhiu
phng thc khi to to mt i tng Font, trong , mt s phng thc
thng c s dng nh:
Font (FontFamily, Single)
Font (String, Single)
Font (FontFamily, Single, FontStyle)
Font (String, Single, FontStyle)
- V d:

ThS. Nguyn Th Mai Trang

188

Bi ging Lp trnh giao din

6. V, t mu cc i tng
6.1. V ng thng:
- public static DrawLine (Pen pen, Point pStart, Point pEnd)
- V d:

6.2. V hnh ch nht:

ThS. Nguyn Th Mai Trang

189

Bi ging Lp trnh giao din


- public static DrawRectangle (Pen pen, int x, int y, int width, int height)
- public static DrawRectangle (Pen pen, Rectangle rect)
- V d:

6.3. V ellipse v hnh trn


- Ellipse l mt hnh ni tip trong mt vng hnh ch nht
- v mt Ellipse, cn xc nh hnh ch nht ngoi tip n
- Ellipse ni tip trong mt hnh vung l mt hnh trn

- public static DrawEllipse (Pen pen, int x, int y, int width, int height)
- public static DrawEllipse (Pen pen, Rectangle rect)
- V d:

ThS. Nguyn Th Mai Trang

190

Bi ging Lp trnh giao din

6.4. V a gic:
- public static DrawPolygon ( Pen pen, Point [] points )
- V d:

6.5. V nh (Image)
- .Net Framework cung cp lp Image cho php trnh by hnh nh.
- Mt s phng thc quan trong ca lp Image:

ThS. Nguyn Th Mai Trang

191

Bi ging Lp trnh giao din


FromFile (string): phng thc static cho php to nh t ng dn n mt
file (bmp. jpeg, jpg, gif, png, ico,... )
Save (string, ImageFormat ): lu nh thnh file
RotateFlip
(RotateFlipType):
xoay,
lt
nh.
Lu : s dng StringFormat, ta cn phi khai bo namespace
System.Drawing.Imaging
- v Image, s dng Phng thc DrawImage ca lp Graphics
- V d:

ThS. Nguyn Th Mai Trang

192

Bi ging Lp trnh giao din

6.6. T mu i tng:
S dng cc phng thc Fill... ca lp Graphics. Cc phng thc Fill c c php
tng t nh cc phng thc Draw... tng ng, ch khc tham s u tin. Vi phng
thc Draw (ngoi tr phng thc DrawString), tham s u tin l i tng Pen, cn
phng thc Fill, tham s u tin l i tng Brush.
V d:

ThS. Nguyn Th Mai Trang

193

Bi ging Lp trnh giao din

6.7. V ch: s dng phng thc DrawString


6.7.1. V ch xut pht ti mt im:
- DrawString ( string, Brush, Font, Point)
- DrawString ( string, Brush, Font, Point, StringFormat ): thit lp nh dng vn bn
xut, chuyn hng vn bn,...
- V d:

ThS. Nguyn Th Mai Trang

194

Bi ging Lp trnh giao din

6.7.2. V ch trong khung ch nht:


- DrawString ( string, Brush, Font, Rectangle)
- DrawString ( string, Brush, Font, Rectangle, StringFormat ): thit lp nh dng
vn bn xut, canh l, chuyn hng vn bn,...
- V d:

ThS. Nguyn Th Mai Trang

195

Bi ging Lp trnh giao din

6.8. V bng chut:


- Nm bt cc s kin MouseDown, MouseUp, MouseMove thc hin thao tc v
- Trong s kin MouseDown, lu gi v tr im nhn chut
- Trong s kin MouseMove, kim tra nu nh trong qu trnh di chuyn chut,
ngi dng c gi nt tri chut, mi thc hin thao tc v, (c th kt hp x l
trong s kin Mousep), sau , cp nht li v tr im v hin ti
- Lu : trnh tnh trng git mn hnh, khi v, chng ta v trn mt bitmap tm,
sau mi sao chp nh tm ny ln form (cn khai bo thuc tnh DoubleBuffered
ca form l True)
---------------HT-------------

ThS. Nguyn Th Mai Trang

196

You might also like