Está en la página 1de 107

Bi ging C s lp trnh 2 1

Mc lc
CHNG 1. LM QUEN VI VISUAL STUDIO 2010 ................................................. 5
1. Gii thiu Visual Studio.NET 2010 ......................................................................... 5
1.1. Tnh hnh trc khi Visual Studio.NET ra i .................................................. 5
1.2. S ra i ca Visual Studio.NET ...................................................................... 5
1.3. Tng quan v Visual Studio.NET ..................................................................... 6
2. Khi ng Visual C# 2010 v giao din ................................................................... 7
CHNG 2. VIT CHNG TRNH U TIN ........................................................ 16
1. bi ...................................................................................................................... 16
3. M n mi .......................................................................................................... 16
4. Thit k giao din ................................................................................................... 16
4.1. t tn v tiu cho form ............................................................................. 16
4.2. Thm iu khin hp vn bn Textbox ........................................................... 17
4.3. Thm iu khin nt lnh Button .................................................................... 17
5. Vit code ................................................................................................................. 18
5.1. Vit code cho nt lnh btnDisplay .................................................................. 18
5.2. Vit code cho nt lnh btnClear ...................................................................... 20
5.3. Vit code cho nt lnh btnExit ........................................................................ 20
6. Lu n ................................................................................................................ 20
7. Cc tp tin ca n ............................................................................................... 20
8. Chy chng trnh .................................................................................................. 21
9. Dng chng trnh .................................................................................................. 21
10. M n c ....................................................................................................... 21
11. Thot khi Visual C# 2010 ..................................................................................... 21
CHNG 3. D LIU V CU TRC IU KHIN ................................................ 22
1. Bin, hng v cc kiu d liu ................................................................................ 22
1.1. Bin.................................................................................................................. 22
1.2. Hng ................................................................................................................ 23
1.3. Cc kiu d liu ............................................................................................... 23
1.4. Hm chuyn i gia cc kiu d liu ............................................................ 27
Bi ging C s lp trnh 2 2


2. Hp thoi thng bo MessageBox ....................................................................... 28
2.1. Khi nim ........................................................................................................ 28
2.2. Hp thng bo MessageBox............................................................................ 28
2.3. Hm thng bo MessageBox ........................................................................... 30
3. Cc cu trc iu khin ........................................................................................... 30
3.1. Cu lnh la chn if ........................................................................................ 30
3.2. Cu lnh la chn Case ................................................................................... 31
Bi tp 1. ..................................................................................................................... 32
3.3. Cu trc lp for ................................................................................................ 36
3.4. Cu trc lp while ............................................................................................ 36
3.5. Cu trc lp do ................................................................................................ 37
3.6. Cu lnh trycatch ......................................................................................... 38
4. Hm ......................................................................................................................... 39
4.1. Hm c mt gi tr tr v ................................................................................. 39
4.2. Hm khng c gi tr tr v ............................................................................. 40
4.3. Cch gi hm ................................................................................................... 40
4.4. V d minh ha ................................................................................................ 41
5. G ri chng trnh ................................................................................................ 42
5.1. Mt s gii php gim li ................................................................................ 42
CHNG 4. TM HIU CC IU KHIN C BN ................................................. 43
1. Tm hiu thuc tnh, phng thc v s kin ......................................................... 43
2. Mi quan h gia thuc tnh, phng thc v s kin ........................................... 43
3. Thuc tnh, phng thc, s kin ca mt s iu khin c bn ........................... 44
3.1. Form ................................................................................................................ 44
3.2. Hp vn bn - TextBox ................................................................................... 46
3.3. Nt lnh Button ............................................................................................ 48
3.4. Nhn Lable ................................................................................................... 49
3.5. Dng mch nc - ToolTip ............................................................................. 49
3.6. Bi tp .............................................................................................................. 50
Bi tp 2. ..................................................................................................................... 50
Bi ging C s lp trnh 2 3


Bi tp 3. ..................................................................................................................... 53
Bi tp 4. ..................................................................................................................... 54
Bi tp 5. ..................................................................................................................... 55
4. Mt s iu khin c bn khc ............................................................................... 57
4.1. Nhm GroupBox .......................................................................................... 57
4.2. Hp nh du CheckBox .............................................................................. 58
4.3. Nt tu chn RadioButton ............................................................................ 59
Bi tp 6. ..................................................................................................................... 60
Bi tp 7. ..................................................................................................................... 64
4.4. Hp danh sch ListBox ................................................................................ 65
Bi tp 8. ..................................................................................................................... 67
Bi tp 9. ..................................................................................................................... 69
4.5. Hp la chn ComboBox ............................................................................. 71
Bi tp 10. ................................................................................................................... 73
Bi tp 11. ................................................................................................................... 74
Bi tp 12. ................................................................................................................... 74
Bi tp 13. ................................................................................................................... 75
4.6. iu khin CheckedListBox ........................................................................... 77
Bi tp 14. ................................................................................................................... 77
4.7. iu khin NumericUpDown .......................................................................... 79
Bi tp 15. ................................................................................................................... 79
4.8. Thanh cun HScrollBar v VScrollBar ........................................................... 81
Bi tp 16. ................................................................................................................... 82
4.9. iu khin Timer ............................................................................................. 83
Bi tp 17. ................................................................................................................... 83
Bi tp 18. ................................................................................................................... 86
4.10. iu khin RichTextBox ................................................................................. 87
CHNG 5. CC HP THOI THNG DNG .......................................................... 88
1. Hp hi thoi Open File.......................................................................................... 88
Bi tp 19. ................................................................................................................... 88
Bi ging C s lp trnh 2 4


2. Hp thoi SaveFile v lung FileStream ................................................................ 90
2.1. Hp thoi SaveFile .......................................................................................... 90
2.2. Lung FileStream ............................................................................................ 90
Bi tp 20. ................................................................................................................... 91
3. Hp thoi Color ...................................................................................................... 92
Bi tp 21. ................................................................................................................... 93
4. Hp thoi Font ........................................................................................................ 94
Bi tp 22. ................................................................................................................... 94
Bi tp 23. ................................................................................................................... 95
CHNG 6. MENU V N NHIU BIU MU .................................................. 97
1. Menu - MenuStrip ................................................................................................... 97
1.1. Thuc tnh ........................................................................................................ 97
1.2. S kin ............................................................................................................. 98
Bi tp 24. ................................................................................................................... 98
2. Popup menu - ContextMenuStrip ........................................................................... 99
Bi tp 25. ................................................................................................................... 99
3. n nhiu biu mu ........................................................................................... 101
3.1. B sung biu mu .......................................................................................... 101
Bi tp 26. ................................................................................................................. 102
3.2. Biu mu khi ng ...................................................................................... 102
3.3. Gi biu mu ................................................................................................. 103
3.4. ng biu mu .............................................................................................. 103
3.5. Xo biu mu ................................................................................................. 103
Bi tp 27. ................................................................................................................. 104
Bi tp 28. ................................................................................................................. 104
Bi tp 29. ................................................................................................................. 105




Bi ging C s lp trnh 2 5


CHNG 1.
LM QUEN VI VISUAL STUDIO 2010
1. Gii thiu Visual Studio.NET 2010
1.1. Tnh hnh trc khi Visual Studio.NET ra i
Vi s pht trin lin tc v a dng ca th gii cng ngh thng tin ngy nay, cc phn
mm, cc h iu hnh, cc mi trng pht trin v cc ng dng lin tc ra i. Tuy
nhin, i khi vic pht trin khng ng nht v nht l do khng tng thch v mt li ch
ca cc cng ty phn mm ln lm nh hng n cng vic ca nhng k s xy dng
phn mm.
Trong gii pht trin ng dng trn Internet ta c th s dng cc ngn ng Java, PHP,
ASP Khi Java mi c Sun Corporation gii thiu n c mt sc mnh ng k v
hng ti vic chy trn nhiu h iu hnh khc nhau, c lp vi cc b x l. c bit
Java rt thch hp cho vic vit cc ng dng trn Internet. Tuy nhin, Java li c hn ch v
mt tc v trn thc t vn cha thnh hnh.
lm gim kh nng nh hng ca Java, bn hng Microsoft cng cung cp ngn ng
ASP - chuyn dng vit cc ng dng trn Web. Trong cc trang ASP va cha th
HTML va cha cc on script (VBScript, JavaScript). Trong qu trnh x l mt trang
ASP, nu l th HTML th s c gi thng ti trnh duyt, cn nu l cc on script th s
c chuyn thnh cc dng HTML ri gi i. Khi nh lp trnh mun ng gi v s dng
li mt s chc nng no , th h dch cc on chng trnh thnh ActiveX v a n vo
Web Server. Tuy nhin, v l do bo mt nn cc Admin ca cc trang Web thng rt d
dt khi ci ActiveX l trn my ca h, ngoi ra vic tho g cc phin bn ca ActiveX ny
cng l cng vic rt kh khn.
Cn trong gii pht trin ng dng trn Windows ta c th vit ng dng bng Visual C++,
Delphi, Visual Basic y l mt s cng c ph bin v mnh. Trong Visual C++ l
mt ngn ng rt mnh nhng cng rt kh s dng. Visual Basic th n gin d hc, d
dng nht nn rt thng dng nhng hn ch l Visual Basic khng phi ngn ng hng
i tng v khng h tr kh nng pht trin thut ton.
Tm li trong gii lp trnh theo Microsoft th vic lp trnh trn desktop cho n lp trnh
h phn tn hay trn web l nhng mng c lp.
1.2. S ra i ca Visual Studio.NET
u nm 1998, sau khi hon tt phin bn Version 4 ca Internet Information Server -IIS,
i ng lp trnh ca Microsoft nhn thy h cn c rt nhiu sng kin c th kin ton
Bi ging C s lp trnh 2 6


IIS, v h bt u xy dng mt kin trc mi trn nn tng tng v t tn l Next
Generation Windows Services - NGWS. Tham vng ca h l cung cp mt mi trng c
th dng chung cho tt c ngn ng lp trnh trong b Visual Studio cng nh cho cc ngn
ng lp trnh ca cc cng ty khc.
Kt qu l nm 2001 Visual Studio.Net 2001 ra i nh du cho mt mi trng lp trnh
trn nn .NET Framework 1.0 tin tin mi.
Nm 2003, sau 2 nm .NET Framework nng cp thm mt bc vi phin bn 1.1 vi c
im ngoi cc chng trnh Windows truyn thng l cc tp tin .exe gi y Windows
cn tn ti nhng chng trnh khc nhng chng trnh chy trn nn .NET. Mun chy
chng trnh .NET ta ch cn ci .NET Framework l . Mt im l th v cng l iu
mong i ca tt c lp trnh vin, t phin bn Windows 2003 .NET Framework c ci
t nh mt phn mc nh ca Windows. Song song , mi trng pht trin Visual
Studio .NET 2001 c nng cp thnh Visual Studio .NET 2003 cho php vit v chy cc
ng dng trn nn .NET Framework 1.1
Cui nm 2005, Visual Studio 2005 vi nn .NET Framework 2.0 mnh m v vt tri hn
so vi nn .NET Framwork 1.1 trc . Ngay sau Microsoft cng b phin bn
Windows Vista, v ton b Windows l .NET, tt c cc hm API li trong nhng phin bn
Windows trc y u c thay th bng cc hm hay th vin .NET. Microsoft
vit li hon ton li API, khng cn mt lp API no na.
1.3. Tng quan v Visual Studio.NET
Visual Studio.NET gm 2 phn: Framework v Integrated Development Environment IDE,
cho php lp trnh vin khi xy dng cc ng dng c th la chn s dng nhiu ngn ng
lp trnh khc nhau nh Visual C++.NET, Visual C#.NET, Visual J#.NET, Visual
Basic.NET trong cng mt mi trng pht trin IDE thng nht trn kin trc .NET
Framework.
Framework l thnh phn quan trng nht, l ct li v tinh hoa ca mi trng .NET,
Framework gip chng ta bin dch v thc thi cc ng dng .NET (cu trc ca Framework
chng ta s tm hiu cc chng sau ca gio trnh).
IDE cung cp mt mi trng pht trin trc quan, gip cc lp trnh vin c th d dng v
nhanh chng xy dng giao din cng nh vit m lnh cho cc ng dng da trn nn tng
.NET. Nu khng c IDE chng ta cng c th dng mt trnh son tho vn bn bt k, v
d nh Notepad vit m lnh v s dng command line bin dch v thc thi ng
dng. Tuy nhin vic ny mt rt nhiu thi gian, tt nht l chng ta nn dng IDE pht
trin cc ng dng, v cng l cch d s dng nht.
Ngoi ra trong Visual Studio.NET th lp trnh Winform v Webform l tng t, v d c
Visual C#.NET ln Visual Basic.NET u h tr kh nng lp trnh trn Win v Web
Bi ging C s lp trnh 2 7


2. Khi ng Visual C# 2010 v giao din
O Vo Start/Programs/Microsoft Visual Studio 2010/Microsoft Visual Studio 2010, xut
hin ca s Start Page.

Hnh 1. Ca s Start Page
+ New Project: To n mi.
+ Open Project: M cc n c sn.
+ Recent Projects: Danh sch cc n gn y nht.
O Kch chn mc New Project hoc vo File/New/Project hoc bm phm tt Ctrl+Shift+N
xut hin ca s New Project
Bi ging C s lp trnh 2 8



Hnh 2. Ca s New Project
Chn ngn ng Visual C# v ng dng Windows.
t tn cho n ti mc Name.
Chn ng dn lu n ti mc Location.
Mc Create directory for solution cho php to mt th mc ti Location cha tt c
cc tp pht sinh ca n (nu khng cc tp ca n s c lu ti Location).

Hnh 3. Th mc cha n
Chn OK to mt n mi.
Bi ging C s lp trnh 2 9


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

Hnh 4. Mi trng pht trin tch hp IDE
C Title Bar: Thanh tiu cha tn n.
C Menu Bar: Thanh Menu cha y cc cng c cn pht trin, thc thi v ci t
ng dng
File: cho php m, thm mi v lu tr n
Edit: gm cc thao tc h tr vic son tho m lnh nh: copy, ct, dn...
View: cho php hin th cc cng c h tr ngi dng trong qu trnh xy dng
n nh:
- Ca s vit m lnh - Code
- Form thit k - Designer
Bi ging C s lp trnh 2 10


- Hp cng c - Toolbox
- Thanh cng c - Toolbars
- Ca s thuc tnh - Properties Window
Project: cho php b sung cc i tng khc nhau vo n nh: cc form, cc
component, cc modul, cc lp
Built: cho php bin dch n.
Debug: cho php chy v g ri chng trnh.
Data: cho php thm mi v hin th c s d liu ca n.
Tools: cung cp cc cng c cho php kt ni ti cc thit b ngoi vi nh Pocket PC,
Smartphone hoc kt ni ti cc h qun tr c s d liu cng nh kt ni ti my
ch server
C Toolbar: thanh cng c gm mt tp hp cc nt lnh, mi nt lnh cha mt biu tng
icons v c chc nng tng ng vi chc nng ca mt mc la chn trong thanh menu.
Thanh cng c rt hu ch v trc quan, gip ngi dng d dng v nhanh chng thc hin
mt chc nng mong mun ch thng qua mt ci kch chut.
Visual C# 2010 c ti 39 thanh cng c khc nhau nh: Standard, Formatting, Debug,
Build... V d hnh nh thanh cng c Standard:

Hnh 5. Thanh cng c Standard
gi cc thanh cng c ta vo View/Toolbars khi s xut hin danh sch tt c cc
thanh cng c. Mun n/hin thanh cng c no ta kch chn ti dng cha tn thanh cng
c .
C Toolbox: l hp cng c cha cc iu khin controls c t ln Form khi thit k
giao din ngi dng.
hin th hp cng c ta thc hin mt trong cc cch sau:
Vo View/Toolbox
Bm t hp phm Ctrl+W+X
Kch chut ti biu tng Toolbox trn thanh cng c Standard.
Bi ging C s lp trnh 2 11



Hnh 6. Hp cng c Toolbox
Mc nh hp cng c c chia thnh 11 tab khc nhau nh: All Windows Forms, Common
Controls...
Ta c th thm mi, loi b, i tn... cc tab bng cch kch chut phi ti v tr bt k trn
tab, xut hin mt menu ng cnh cho php la chn cc thao tc cn thc hin.

Hnh 7. Cc chc nng lm vic vi tng tab trong Toolbox
Bi ging C s lp trnh 2 12


Trong mi tab ca hp Toolbox cha danh sch cc loi iu khin khc nhau, cc iu
khin ny c th thm mi, loi b, thay i v tr Kch chut phi ti mt iu khin bt
k trn tab, xut hin mt menu ng cnh cho php la chn cc thao tc cn thc hin.
V d thm mi mt iu khin vo trong tab Data, ta kch chut phi ti v tr bt k trn
tab Data, chn Choose Items...

Hnh 8. Cc chc nng lm vi c vi tng iu khin trong tab
Kt qu s xut hin ca s Choose Toolbox Items, kch chn cc iu khin mong mun ri
bm OK kt thc.

Hnh 9. Ca s Choose Toolbox Items
Bi ging C s lp trnh 2 13


C Form Designer: ca s thit k dng thit k giao din cho chng trnh, mi d n
c th c mt hoc nhiu Form.

Hnh 10. Ca s Form Designer
Solution Explorer: ca s gii php - y l phn ca s gip ta qun l tt c cc ti
nguyn v tp tin d n.
Solution Explorer c t chc thnh mt cu trc cy bao gm nhng mc khc nhau, nh:
danh sch cc Form ca n, danh sch cc lp Class, danh sch cc ti nguyn cng nh
danh sch c s d liu
hin th ca s Solution Explorer ta thc hin mt trong cc cch sau:
Vo View/Solution Explorer
Bm t hp phm Ctrl+W+S
Kch chut ti biu tng Solution Explorer trn thanh cng c Standard

Hnh 11. Ca s Solution Explorer
Bi ging C s lp trnh 2 14


Trong ca s Solution Explorer c hai thnh phn hay dng l View Code v View Designer.
View Code: c tc dng hin th ca s son tho m lnh cho Form ang c chn. Ngoi
ra, hin th ca s son tho m lnh ta cn c mt s cch khc nh sau:
Vo View/Code.
Bm phm tt F7.
Kch p chut ti ca s thit k ca form.
Giao din ca s son tho nh sau:

Hnh 12. Ca s son tho
View Designer: c tc dng hin th ca s thit k giao din ca Form ang c chn.
Ngoi ra, hin th ca s thit k giao din ta cn c mt s cch khc nh sau:
Vo View/Designer
Bi ging C s lp trnh 2 15


Bm phm tt Shift+F7.
C Properties Window: ca s ny lit k tt c cc thuc tnh, s kin ca cc iu khin
trong form.
Mun hin th thuc tnh ca i tng no ta kch chut chn i tng trong ca s
thit k giao din, hoc chn tn i tng trong danh sch th xung phn u ca ca s
Properties.

Hnh 13. Ca s Properties
Mi thuc tnh c mt gi tr mc nh, ta c th thay i gi tr ca cc thuc tnh trc tip
ti ca s Properties trong lc thit k, hoc thay i bng m lnh trong lc thi hnh
chng trnh.
hin th ca s Properties ta thc hin theo mt trong cc cch sau:
Vo View\Properties Window.
Kch chn biu tng Properties Window trn thanh cng c Standard.
Bm phm tt Ctrl+W+P


Bi ging C s lp trnh 2 16


CHNG 2.
VIT CHNG TRNH U TIN
Mt chng trnh ng dng trong C# c thc hin theo hai bc sau:
Thit k giao din.
Vit m lnh cho chng trnh.
1. bi
Vit chng trnh gm 1 hp vn bn Textbox v 3 nt lnh Button: Display, Clear, Exit vi
cc yu cu sau:
Kch chut vo nt Display th trong hp vn bn xut hin dng ch: Welcome to
Visual C# 2010.
Kch chut vo nt Clear th ni dung trong hp vn bn mt i.
Kch chut vo nt Exit thot khi chng trnh quay li ca s son tho.

Hnh 14. Giao din chng trnh u tin
3. M n mi
M Microsoft Visual Studio 2010, chn File/New/Project khi ng mt n mi.
Chn ngn ng Visual C# v ng dng Windows, t tn cho n ti mc Name l
Welcome ri chn OK.
4. Thit k giao din
4.1. t tn v tiu cho form
Bi ging C s lp trnh 2 17


Kch chut vo v tr bt k trn Form, trong ca s Properties sa cc thuc tnh:
Name: frmWelcome
Text: The first program
Trong ca s Solution Explorer kch chut ti Form1.cs, trong ca s Properties sa thuc
tnh File Name l frmWelcome.cs

Hnh 15. i tn form trong ca s Solution Explorer
4.2. Thm iu khin hp vn bn Textbox
Kch chut vo biu tng trn hp cng c Toolbox, gi v ko chut t
Textbox vo Form. Ngoi ra ta c th kch p chut ti biu tng TextBox, iu khin ny
s c t ng t vo Form.
Khi c iu khin TextBox trong Form ta c th thay i v tr v kch thc ca Textbox
cho ph hp.
Khi mi xut hin trn Form hp Textbox c tn mc nh l TextBox1, ta thay i gi tr
ny bng cch kch chut chn iu khin TextBox1, ti ca s Properties chn thuc tnh
Name sa thnh txtWelcome.
4.3. Thm iu khin nt lnh Button
Kch chut vo biu tng , gi v ko chut a iu khin nt lnh ln Form, nt
lnh ny c tn mc nh l Button1 v ni dung cng l Button1.
Bi ging C s lp trnh 2 18


Thc hin tng t a thm 2 nt lnh Button2 v Button3 vo form.
thay i hai thuc tnh Name v Text ca cc nt lnh ta thc hin nh sau:
Kch chut vo nt lnh 1, trong ca s Properties sa thuc tnh Name l
btnDisplay, thuc tnh Text l Display
Kch chut vo nt lnh 2, sa thuc tnh Name l btnClear, thuc tnh Text l Clear
Kch chut vo nt lnh 3, sa thuc tnh Name l btnExit, thuc tnh Text l Exit
Ch : Mi iu khin u c thuc tnh Name, d dng qun l, g ri chng trnh ta
nn t tn iu khin tng ng vi chc nng ca n v c tip u ng ch loi iu
khin u.
V d: Textbox c tip u ng - txt, Button - btn, Form - frm Cc tip u ng c vit
ch thng, tn ca iu khin c vit hoa ch ci u tin, v d: txtWelcome.
5. Vit code
5.1. Vit code cho nt lnh btnDisplay
Ta m ca s son tho Code Editor bng cch kch p chut vo nt Display. Trong ca
s Code, C# nh ngha sn cho chng ta mt khng gian tn - namespace i din cho form
ang xt v 2 dng m u v kt thc cho s kin Click ca nt Display.
G vo gia th tc btnDisplay_Click dng lnh gn gi tr Welcome to Visual C# 2010
cho thuc tnh Text ca iu khin txtWelcome nh sau:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Welcome
{
public partial class frmWelcome : Form
{
public frmWelcome()
{
InitializeComponent();
}
Bi ging C s lp trnh 2 19


private void btnDisplay_Click(object sender, EventArgs e)
{
txtWelcome.Text = "Welcome to Visual C# 2010";
}
}
}
Ch :
Hu nh tt c cc th tc x l mt s kin no ca cc iu khin trn form u c 2
i s l sender v e. Trong :
i s sender c kiu object i din cho i tng pht sinh s kin.
i s e c kiu EventArgs cha cc thng tin v s kin nh: v tr chut, thi
gian pht sinh s kin
Ta c cu trc chung gn gi tr cho thuc tnh ca mt iu khin khi vit m lnh nh
sau:
<Tn iu khin>.<Thuc tnh>=<Gi tr>;
Cc thuc tnh ca cc iu khin trong C# rt phong ph, C# cung cp tin ch
I ntellisence t ng hin th mt danh sch cc thuc tnh ca iu khin sau khi ta g
tn iu khin v du chm .
la chn mt thuc tnh, ta c th dng phm mi tn ln, xung la chn hoc g
cc k t u ca thuc tnh cn s dng, sau n phm Tab hoc du cch t ng
chn tn thuc tnh vo dng lnh.

Hnh 16. Tin ch Intellisence
Bi ging C s lp trnh 2 20


Trong mi trng son tho, nu g sai c php th C# s bt li ngay bng cch hin th
mt ng gch chn hnh rng ca di cu lnh sai. Khi sa xong li th ng rng ca
s t ng bin mt.
5.2. Vit code cho nt lnh btnClear
Quay li ca s thit k Design, kch p chut vo nt Clear, g m lnh cho nt Clear nh
sau:
private void btnClear_Click(object sender, EventArgs e)
{
txtWelcome.Text = "";
}
5.3. Vit code cho nt lnh btnExit
Quay li ca s thit k Design, kch p chut vo nt Exit, g m lnh nh sau:
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
Lnh Application.Exit() c tc dng ng v xo ra khi b nh tt c cc ca s ang c
thc hin trong chng trnh v quay tr v ca s thit k.
6. Lu n
Chn File/Save All hoc kch chn biu tng trn thanh cng c Standard.
7. Cc tp tin ca n
Khi to n, Visual Studio.NET sinh ra cc tp tin sau:
.sln: y l tp tin gii php (solution file), mi ng dng c mt tp tin loi ny n
bao gm mt hoc nhiu tp tin d n.
.csproj: y l tp tin d n (project file) ca C#, mi tp tin d n gm mt hoc
nhiu tp tin ngun, cc tp tin ngun trong cng mt d n phi c vit cng mt
ngn ng.
.cs: y l tp tin ngun (source file) ca C# l ni cha m lnh ca chng trnh.
AssemblyInfor.cs: tp tin ny cho php thm mt s thuc tnh vo chng trnh nh:
tn tc gi, ngy to chng trnh
Bi ging C s lp trnh 2 21


8. Chy chng trnh
chy mt chng trnh C# ta thc hin theo 1 trong cc cch sau:
Chn Debug/Start Debugging.
Kch chut vo biu tng Start Debugging trn thanh cng c Standard.
Bm phm tt F5.
9. Dng chng trnh
Khi chy chng trnh, nu xut hin li ta c th dng chng trnh v quay v ca s son
tho sa li. Ta c cc cch thc hin sau:
Vo Debug/Stop Debugging.
Kch chut vo biu tng Stop Debugging trn thanh cng c Standard.
Bm phm tt Ctrl+Alt+Break.
10. M n c
m mt n c ta c cc cch thc hin nh sau:
M th mc cha n, v d th mc Welcome trong ng dn D:\, kch p
vo tp tin Welcome.sln m n Welcome.
M mi trng Microsoft Visual Studio 2010, trong ca s Start Page kch chn
n cn m trong mc Recent Projects (nu c).
M mi trng Microsoft Visual Studio 2010, vo File/Open Project, chn ng
dn n tp tin .sln ca n ri chn Open.
11. Thot khi Visual C# 2010
Chn File/Exit.



Bi ging C s lp trnh 2 22


CHNG 3.
D LIU V CU TRC IU KHIN
1. Bin, hng v cc kiu d liu
1.1. Bin
Bin l mt i lng dng cha d liu tm thi trong qu trnh tnh ton. Tt c cc
bin c s dng trong chng trnh u phi c khai bo ngay t u, bin c chia
thnh 3 loi bao gm: Bin u vo, bin u ra v bin trung gian.
Bin c th c khai bo ti 2 ni gm:
Bn trong phn nh ngha lp ca Form.
Bn trong mt phng thc.
public partial class frmWelcome : Form
{
// Ni khai bo bin;
private void bntDisplay_Click(object sender, EventArgs e)
{
// Ni khai bo bin;
}
}
Phm vi ca mt bin: ph thuc vo v tr khai bo ca bin, nu bin c khai bo trong
phn nh ngha lp ca Form th l bin ton cc c tc dng trong ton b cc on m
lnh ca form, nu bin c khai bo bn trong mt phng thc th l bin cc b ch c
tc dng trong phng thc cha n.
Bin ging nh nhng chic hp trong b nh c kh nng lu gi gi tr, c nhiu kiu gi
tr khc nhau m C# c th x l nh: kiu s nguyn, kiu s thc, kiu k t Khi khai
bo mt bin ta phi ch ra kiu gi tr m n s lu tr.
C php khai bo bin nh sau:
Kiu d liu Tnbin [=Gi tr];
Tnbin: l mt chui cc k t do ngi lp trnh t t bao gm cc ch ci, ch s v
du gch di. Tn bin phi bt u bng mt ch ci, khng c cha du cch, C# phn
bit ch hoa ch thng.
Bi ging C s lp trnh 2 23


1.2. Hng
Hng l i lng dng cha nhng d liu c gi tr khng i trong sut qu trnh tnh
ton. S dng hng lm chng trnh sng sa d c nh tn gi gi nh thay v cc con s.
Hng c khai bo theo c php sau:
const Kiu d liu Tnhng = Gi tr;
1.3. Cc kiu d liu
1.3.1. Kiu s
int, long: lu tr cc s nguyn, int c ln 4 bytes, long c ln 8 bytes.
float, double: biu din cc s thc, kiu float dng 4 bytes, double dng 8 bytes.
V d khai bo bin s:
int a; a=10;
long b=10L;
float c =19.34F;
double d=19.34;
Cc php ton s hc:
Cng: +,+=
Tr: -, -=
Nhn: *, *=
Chia:/, /=. Ta c int/int=int, int/double=double, double/int=double,
double/double=double V d: 8/5=1; 8.0/5=1.6
Ch : cc php ton x[+,-,*,/]=y tng ng vi php ton: x=x[+,-,*,/]y
%: php chia ly phn d, v d 5 % 2=1, 10.8 % 4 = 2.8
Math.Round(x,n): hm lm trn s thc, v d: Math.Round(11.346,2) = 11.35
Math.Sin(x): hm tnh gi tr ca sin(x)
Math.Cos(x): hm tnh gi tr ca cos(x)
Math.Exp(x): hm tnh gi tr e
x

Bi ging C s lp trnh 2 24


Math.Pow(x,y): hm tnh gi tr x
y

Math.Abs(x): hm tnh gi tr tuyt i ca x
Math.Sqrt(x): hm tnh cn bc hai ca x
Math.Floor(x): hm tr v s nguyn gn x nht, v d: Math.Floor(11.756) = 11
Math.Truncate(x): hm tr v phn nguyn ca x, v d: Math.Truncate(11.756) = 11
Ta c: Math.Floor(-11.756) = -12 v Math.Truncate(-11.756) = -11
Cc php ton so snh: kt qu tr v ca cc php ton so snh c dng ng hoc sai.
Ln hn: >
Nh hn: <
Ln hn hoc bng: >=
Nh hn hoc bng: <=
Bng: ==
Khc: !=
1.3.2. Kiu k t - char
char l kiu d liu cha cc k t trong bng m ASCII v c t trong cp du nhy
n.
Khai bo bin k t:
char ch=+;
1.3.3. Kiu chui - string
string l mt chui cc k t c t trong cp du nhy kp. Trong VS.NET c h tr font
Unicode nn ta c th g ting Vit c du.
V d khai bo bin chui:
string s=H Ni ma thu;
Cc php ton trn kiu d liu chui
Bi ging C s lp trnh 2 25


+: ton t ghp chui.
V d: H Ni + ma thu cho kt qu H Ni ma thu
s.Length: tr v chiu di ca chui s.
V d: Lm Anh.Length c kt qu = 7
s.Replace(str1,str2): thay th chui str1 trong chui s bng chui str2.
V d: H Ni.Replace(Ni, Ty) cho kt qu H Ty
s.Substring(vt,n): tr v mt chui con gm n k t trong chui s, bt u t k t
v tr vt. (Chui c tnh t v tr 0).
V d: "Hoa hng ".Substring(1, 2) cho kt qu oa
s.Insert(vt,str): chn thm gi tr ca chui str vo chui s ti v tr vt.
V d: "Tri xanh". Insert(4, " mu") cho kt qu Tri mu xanh
s.ToLower: bin i chui s v ch in thng.
V d: H Ni.ToLower cho kt qu h ni
s.ToUpper: bin i chui s v ch in hoa.
V d: H Ni.ToUpper c kt qu H NI
s.Remove(vt,n): xa n k t trong chui s, bt u t k t v tr vt.
V d: "Hoa hng".Remove(1, 2) cho kt qu H hng
s.TrimStart: xa cc k t rng u chui s.
V d: " Hoa hng ".TrimStart cho kt qu "Hoa hng "
s.TrimEnd: xa cc k t rng cui chui s.
V d: " Hoa hng ".TrimEnd cho kt qu " Hoa hng"
s.Trim: xa cc k t rng u v cui chui s.
V d: " Hoa hng ".Trim cho kt qu "Hoa hng"
s.Split(ch): tch chui s thnh cc chui con ngn cch nhau bi k t ch.
V d: string s = "Ha Noi";
string[] tu=s.Split( );
Kt qu: tu[0]= "Ha", tu[1]= "Noi"
Bi ging C s lp trnh 2 26


1.3.4. Kiu logic bool
Kiu bool l kiu d liu ch nhn mt trong hai gi tr true/false.
Cc php ton trn kiu d liu bool
Php ton V &&: xt biu thc A && B ch nhn gi tr ng khi v ch khi c A v
B cng nhn gi tr ng, cn nhn gi tr sai trong tt c cc trng hp cn li
Php ton Hoc ||: xt biu thc A || B ch nhn gi tr sai khi v ch khi c A v B
cng nhn gi tr sai, cn nhn gi tr ng trong tt c cc trng hp cn li.
Php ton Ph nh !: ta c !A nhn gi tr ng khi A nhn gi tr sai v ngc li.
Bng gi tr chn l ca cc php ton:
A B A && B A || B A !A
True True True True False True
True False False True True False
False True False True
False False False False
1.3.5. Kiu ngy thng DateTime
V d khai bo bin ngy thng:
DateTime d;
d = DateTime.Now;
Cc php ton trn kiu d liu DateTime
DateTime.Now: tr v ngy v gi hin hnh, v d: 09/02/2009 5:20:28PM
Date.Day: tr v gi tr ngy ca Date, v d: d.Day cho kt qu 09
Date.Month: tr v gi tr thng ca Date, v d:d.Month cho kt qu 02
Date.Year: tr v gi tr nm ca Date, v d: d.Year cho kt qu 2009
Date.AddDays(n): tr v mt ngy mi cch ngy Date n ngy.
Date.AddMonths(n): tr v mt ngy mi cch ngy Date n thng.
Date.AddYears(n): tr v mt ngy mi cch ngy Date n nm.
Bi ging C s lp trnh 2 27


1.3.6. Kiu d liu ngu nhin
C# cung cp kiu d liu Random cho php sinh cc s ngu nhin. V d khai bo bin
ngu nhin:
Random rnd;
Cc php ton trn kiu d liu ngu nhin
new Random(): khi to b s ngu nhin. V d: rnd=new Random();
rnd.NextDouble(): tr v mt s thc ngu nhin trong khong t 0 n 1.
rnd.Next(): tr v mt s nguyn c gi tr bt k.
rnd.Next(n,m): tr v mt s nguyn c gi tr bt k trong khong t n ti m (n>=0).
1.3.7. Kiu d liu mng
Mng l mt tp hp cc bin c cng tn v cng kiu d liu. Dng mng lm chng
trnh n gin v ngn gn hn. Mng c cn trn, cn di v cc thnh phn trong mng l
lin tc gia 2 cn.
Khai bo mng: mng c khai bo theo c php sau:
Kiu d liu[] tn mng ;
cp pht b nh cho mng ta dng ton t new theo sau l tn kiu d liu v kch thc
ca mng c t trong cp du ngoc vung.
V d khai bo mng mt chiu nguyn a gm 10 phn t :
int[] a = new int[10] ;
Khai bo mng 2 chiu thc b gm 10 hng, 5 ct
double[,] b = new double[10,5];
Khi to gi tr cho cc phn t ca mng khi khai bo:
double[] a = new double[2] {34.56, -45}; hoc double[] a = {34.56, -45};
string[] Tennuoc = {Anh, Php, c, Vit Nam};
int[,] a = {{4, 6, 9}, {5, 7, 9}, {12, 44, 23}};
1.4. Hm chuyn i gia cc kiu d liu
Bi ging C s lp trnh 2 28


Hm chuyn i i gi tr sang kiu
Convert.ToBoolean(Giatri) Boolean
Convert.ToByte(Giatri) Byte
Convert.ToDateTime(Giatri) Date
Convert.ToDouble(Giatri) Double
Convert.ToInt16(Giatri) Integer 2 byte
Convert.ToInt32(Giatri) Integer 4 byte
Convert.ToInt64(Giatri) Integer 8 byte
Convert.ToSingle(Giatri) Single
Convert.ToString(Giatri) String

Ch rng gi tr truyn cho hm phi hp l, ngha l phi thuc min gi tr ca kiu kt
qu nu khng C# s bo li. V d:
+ Convert.ToDateTime(25/04/79) tr v gi tr kiu ngy thng 25/04/79
+ Convert.ToInt32(25) = 25
+ Convert.ToInt32(25a) hoc Convert.ToInt32(a25) s bo li.
2. Hp thoi thng bo MessageBox
2.1. Khi nim
Hp thng bo l hp thoi cung cp thng tin tng tc vi ngi s dng, ng thi
cng l ni hin th cc kt qu trung gian trong qu trnh tnh ton.
Trong thi gian hin th hp thng bo, C# ngng mi hot ng ca biu mu v ngi
dng ch c th lm vic vi hp thng bo.
2.2. Hp thng bo MessageBox
MessageBox.Show(Ni dung thng bo, Tiu , Kiu chc nng, Kiu biu tng);
Ch : C php hp thng bo khng nht thit phi c y bn thnh phn trn, ni
dung cn thng bo v tiu ca hp thng bo c t trong cp du nhy kp.
Kiu chc nng v kiu biu tng c cc gi tr nh sau:
Bi ging C s lp trnh 2 29


Hng tng trng Th hin ngha
Cc kiu chc nng: c bt u bi MessageBoxButtons
.OK

Ch hin th nt OK.
.OKCancel

Hin th cc nt OK v Cancel.
.AbortRetryIgnore

Hin th cc nt Abort, Retry v
Ignore.
.YesNoCancel

Hin th cc nt Yes, No v Cancel.
.YesNo

Hin th cc nt Yes, No.
.RetryCancel

Hin th cc nt Retry, Cancel.
Cc kiu biu tng: c bt u bi MessageBoxI con
.Error hoc .Hand hoc .Stop

Dng cho nhng thng bo li tht bi khi thi hnh mt
vic no .
.Question

Dng cho nhng cu hi yu cu ngi dng chn la.
.Exclamation hoc .Warning

Dng cho cc thng bo ca chng trnh.
.Asterisk hoc .Information

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

Khng hin th biu tng.
V d hin th hp thng bo Bn cha nhp d liu vi mt nt lnh OK v biu tng
Information ta vit nh sau:
MessageBox.Show("Bn cha nhp d liu", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Kt qu ta c:

Ch : Trong khi chy chng trnh ta c th hin th gi tr hin thi ca mt bin bt k
bng hp thng bo nh sau:
int a = 5;
MessageBox.Show(a.ToString());
Bi ging C s lp trnh 2 30


Kt qu xut hin hp hi thoi sau:

2.3. Hm thng bo MessageBox
Ngoi chc nng thng bo, hm MessageBox cn tr v gi tr ca cc nt chc nng m
ngi dng chn. C php ca hm MessageBox nh sau:
MessageBox.Show(Ni dung thng bo, Tiu , Kiu chc nng, Kiu biu tng) = Gi
tr tr v
Trong gi tr tr v gm:
System.Windows.Forms.DialogResult.OK
System.Windows.Forms.DialogResult.Cancel
System.Windows.Forms.DialogResult.Abort
System.Windows.Forms.DialogResult.Retry
System.Windows.Forms.DialogResult.Ignore
System.Windows.Forms.DialogResult.Yes
System.Windows.Forms.DialogResult.No
V d, ta c th vit li code cho nt btnThoat vi yu cu ch thot khi ngi dng tr li c
mun thot nh sau:
private void btnThoat_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bn c mun thot khi chng trnh khng?", "Thng bo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question)==
System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
3. Cc cu trc iu khin
3.1. Cu lnh la chn if
Bi ging C s lp trnh 2 31


Dng 1:
if (iukin)
{
Khi lnh;
}
Hot ng: Nu <iu kin> nhn gi tr ng th <Khi lnh> c thc hin.
Dng 2:
if (iu kin)
{
Khi lnh 1;
}
else
{
Khi lnh 2;
}
Hot ng: Nu <iu kin> nhn gi tr ng th <Khi lnh 1> c thc hin, <Khi lnh
2> b b qua. Ngc li nu <iu kin> nhn gi tr sai th <Khi lnh 2> c thc hin,
<Khi lnh 1> b b qua.
3.2. Cu lnh la chn Case
switch (Biu thc kim tra)
{
case <Biu thc 1>:
Khi lnh 1;
break;
case <Biu thc 2>:
Khi lnh 2;
break;
..
default:
Khi lnh n+1;
break;
}
Hot ng: my so snh gi tr ca <Biu thc kim tra> vi gi tr ca cc <Biu thc i>.
Nu <Biu thc kim tra> c gi tr tha mn <Biu thc i> th <Khi lnh i> c thc
hin, sau my s thot ngay ra khi cu lnh switch.
Nu <Biu thc kim tra> khng tha mn <Biu thc i> no th <Khi lnh n+1> c
thc hin.
Bi ging C s lp trnh 2 32


Ch : nu cc biu thc khc nhau cng thc hin chung mt khi lnh th ta c th vit
gp nh sau:
switch (Biu thc kim tra)
{
case <Biu thc 1>:
case <Biu thc 2>:
Khi lnh;
break;
..
default:
Khi lnh n+1;
break;
}
Bi tp 1.
Xy dng chng trnh thc hin cc php ton theo giao din sau (cc php ton bao gm:
+, - , *, /, %).

Hnh 17. Giao din bi tp 1
Yu cu: + Nt thc hin c tc dng thc hin php ton i vi s A v s B, kt qu lu
vo kt qu.
+ Kt qu ch c tnh khi ngi dng nhp gi tr cho s A, B v php ton.
+ Php ton chia phi kim tra trng hp mu =0.
+ kt qu khng c php chnh sa d liu.
To d n mi v thit lp cc thuc tnh ca cc iu khin nh sau:
Bi ging C s lp trnh 2 33


iu khin Thuc tnh Gi tr
Form1
Name frmPheptoan
FormBorderStyle Fixed3D
Icon Chn file nh c ui .ico bt k
Text Chuong trinh thuc hien cac phep toan
Lable1 Text S A
Lable2 Text S B
Lable3 Text Php ton:
Lable4 Text Kt qu:
TextBox1 Name txtSoA
TextBox2 Name txtSoB
TextBox3 Name txtPheptoan
TextBox4 Name txtKetqua
Button1
Name btnThuchien
Text &Thuchien
Button2
Name btnLamlai
Text &Lm li
Button3
Name btnThoat
Text T&hot
M lnh:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
public partial class frmPheptoan : Form
{

public frmPheptoan()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
Bi ging C s lp trnh 2 34


{
txtKetqua.Enabled = false;
btnLamlai.Enabled = false;
}

private void btnThuchien_Click(object sender, EventArgs e)
{
int a, b, kq;
if (txtSoA.Text == "")
{
MessageBox.Show("Bn phi nhp A", "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtSoA.Focus();
return;
}
if (txtSoB.Text == "")
{
MessageBox.Show("Bn phi nhp B", "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtSoB.Focus();
return;
}
a = Convert.ToInt16(txtSoA.Text);
b = Convert.ToInt16(txtSoB.Text);
switch (txtPheptoan.Text)
{
case "+":
kq=a+b;
txtKetqua.Text = kq.ToString();
break;
case "-":
kq=a-b;
txtKetqua.Text = kq.ToString();
break;
case "*":
kq = a * b;
txtKetqua.Text = kq.ToString();
break;
case "/":
if (txtSoB.Text == "0")
{
MessageBox.Show("Gi tr B phi khc 0!", "Thng Bo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtSoB.Text = "";
Bi ging C s lp trnh 2 35


txtSoB.Focus();
return;
}
kq = a / b;
txtKetqua.Text = kq.ToString();
break;
case "%":
kq = a % b;
txtKetqua.Text = kq.ToString();
break;
default:
MessageBox.Show("Bn phi nhp li php ton", "Thng Bo",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPheptoan.Text = "";
txtPheptoan.Focus();
return;
}
btnThuchien.Enabled = false;
btnLamlai.Enabled = true;
txtSoA.ReadOnly =true ;
txtSoB.ReadOnly = true ;
txtPheptoan.ReadOnly = true;
}

private void btnLamlai_Click(object sender, EventArgs e)
{
txtSoA.Text = "";
txtSoA.ReadOnly = false;
txtSoB.Text ="";
txtSoB.ReadOnly = false;
txtPheptoan.Text = "";
txtPheptoan.ReadOnly = false;
txtKetqua.Text = "";
btnThuchien.Enabled = true;
txtSoA.Focus();
}

private void btnThoat_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bn c mun thot khng?", "Thng bo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
}
}
Bi ging C s lp trnh 2 36


3.3. Cu trc lp for
Cho php thc hin lp i lp li mt on chng trnh nhiu ln, vi s ln lp xc nh.
for (biu thc khi to; biu thc iu kin; biu thc cp nht)
{
Khi lnh;
[break;]
}
Hot ng: u tin my thc hin biu thc khi to khi to gi tr ca bin iu
khin, sau my kim tra gi tr ca biu thc iu kin, nu biu thc ny ng th <Khi
lnh> c thc hin v cp nht gi tr ca bin iu khin thng qua biu thc cp nht.
Sau quay li kim tra gi tr ca biu thc iu kin, c lp li nh vy cho n khi biu
thc iu kin nhn gi tr sai th dng li.
Ch : thot ngay ra khi vng lp for ta c th dng lnh break.
V d: Dng vng lp for khi to cc gi tr ngu nhin trong khong (0, 100) cho mng
mt chiu gm 10 phn t.
M mt d n mi ri g on m sau vo ca s code.
private void Form1_Load(object sender, EventArgs e)
{
int[] m = new int[10];
Random rnd = new Random();
for(int i = 0; i<10; i++)
{
m[i] = rnd.Next(0,100);
MessageBox.Show(m[i].ToString());
}
}
Bm F5 thc hin chng trnh.
3.4. Cu trc lp while
Cho php thc hin lp i lp li mt on chng trnh nhiu ln, vi s ln lp khng
c xc nh trc.
while (Biu thc iu kin)
{
Khi lnh;
[break;]
}
Bi ging C s lp trnh 2 37


Hot ng: u tin my kim tra gi tr ca <Biu thc iu kin>, nu biu thc ny nhn
gi tr ng th <Khi lnh> c thc hin. Sau li quay li kim tra gi tr ca <Biu thc
iu kin>, c lp li nh vy cho n khi <Biu thc iu kin> nhn gi tr sai th dng li.
Ch : + V <Biu thc iu kin> c kim tra trc, nn <Khi lnh> c th khng c
thc hin ln no nu ngay t u <Biu thc iu kin> nhn gi tr sai v trc
khi thc hin khi lnh phi khi gn gi tr cho <Biu thc iu kin>.
+ Trong <Khi lnh> phi c t nht mt lnh lm thay i gi tr ca <Biu thc iu
kin> n mt lc no <Biu thc iu kin> nhn gi tr sai, nhm dng vng
lp li, nu khng n s lp mi khng dng.
V d: Nhp s thc a, tm s t nhin n nh nht sao cho tng: T = 1+1/2++1/n >= a
M mt d n mi ri g on m sau vo ca s code.
private void Form1_Load(object sender, EventArgs e)
{
double a= 2;
double T= 0;
int n = 0;
while (T<a)
{
n = n + 1;
T = T + 1.0/n;
}
MessageBox.Show("Gia tri n thoa man = " + n.ToString ());
}
Bm F5 thc hin chng trnh, c th thay i gi tr ca a c nhng kt qu khc nhau.
3.5. Cu trc lp do
Cho php thc hin lp i lp li mt on chng trnh nhiu ln, vi s ln lp khng
c xc nh trc.
do
{
Khi lnh;
[break;]
}
while (Biu thc iu kin);
Hot ng: u tin my thc hin <Khi lnh>, sau kim tra gi tr ca <Biu thc iu
kin>, nu biu thc ny nhn gi tr ng th tip tc thc hin <Khi lnh>, c lp li nh
vy cho n khi <Biu thc iu kin> nhn gi tr sai th dng li.
Bi ging C s lp trnh 2 38


Ch : + V <Biu thc iu kin> c kim tra sau, nn <Khi lnh> lun c thc hin
t nht 1 ln.
+ Trong <Khi lnh> phi c t nht mt lnh lm thay i gi tr ca <Biu thc iu
kin> nhm dng vng lp li.
V d: Tnh tng T = 1 + 2 + + 10
M mt d n mi ri g on m sau vo ca s code.
private void Form1_Load(object sender, EventArgs e)
{
int T = 0;
int i = 1;
do
{
T = T + i;
i = i + 1;
}
while (i <= 10);
MessageBox.Show("T = " + T.ToString ());
}
3.6. Cu lnh trycatch
c dng trong cc cu lnh by li ca chng trnh, cho php bt mt s li trong qu
trnh thc thi ng dng, v d: bin cc k t khng phi dng s thnh s, thc hin php
chia cho 0, s dng bin null
C php by li trong C# c th hin nh sau:
try
{
// m cho vic thc thi bnh thng
}
catch (System.Exception)
{
// x l li
}
finally
{
// dn dp
}
C php trn gm 3 khi:
Bi ging C s lp trnh 2 39


Khi try cha ng on m cn phi thc thi trong chng trnh, nhng on m
ny c th gp phi mt vi trng thi li.
Khi catch cha ng on m gii quyt nhng nhng li xy ra trong try, tham s
ca catch l cc lp bt li. C# c rt nhiu lp bt li, trong System.Exception l
lp mc cao nht c th bt c mi loi li xy ra trong try.
Khi finally cha ng on m dn dp ti nguyn hoc bt k hnh ng no bn
mun thc hin sau khi try hay catch, khi ny c th c hoc khng.
Hot ng: u tin chng trnh thc thi cc cu lnh trong khi try, nu khng xut hin
li th cc cu lnh c thc hin bnh thng sau s nhy n thc hin cc cu lnh
trong khi finally, tuy nhin nu xut hin li trong khi try th chng trnh s t ng nhy
ngay ti thc thi cc cu lnh trong khi catch m khng t ngt dng chng trnh v sau
cng thc hin cc cu lnh trong khi finally.
Ch : C# khng cho php t lnh return bn trong khi finally.
V d: By li on chng trnh tnh tng 2 s nguyn a v b trong trng hp khng nhp
d liu dng s.
private void bntTong_Click(object sender, EventArgs e)
{
try
{
txtTong.Text = Convert.ToString(Convert.ToInt32(txtSoA.Text)
+ Convert.ToInt32(txtSoB.Text));
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
//MessageBox.Show("Bn phi nhp d liu s!");
}
}
4. Hm
4.1. Hm c mt gi tr tr v
C php xy dng:
public|private Kiudliutrv <Tn CTC>([Tham s])
{
Khai bo cc bin cc b;
Kiudliutrv BinTG;
Bi ging C s lp trnh 2 40


Tnh ton kt qu thng qua BinTG;
return BinTG;
}
Khi xy dng hm c gi tr tr v ta thng khai bo thm mt bin trung gian c kiu
trng vi kiu d liu tr v v cng thc tnh ton s c tnh thng qua bin trung gian
ny. Gi tr ca bin trung gian s c gn vo cho tn hm thng qua lnh return.
Lnh return c th c t ti v tr bt k, khi gp lnh return chng trnh gn gi tr ca
bin i km sau lnh return cho tn hm v thot ngay ra khi hm.
4.2. Hm khng c gi tr tr v
C php xy dng:
public|private void <Tn CTC>([Tham s])
{
Cc dng lnh;
}
4.3. Cch gi hm
Hm c gi tr tr v: c s dng nh mt thnh phn ca biu thc, iu c ngha n
c th c dng trong lnh gn v trong cc biu thc so snh.
Bin = <Tn CTC>([Tham s]);
V d, nu ta c hm: private double MyFunction(int a, int b)
Th ta gi hm nh sau: x = MyFunction(n, m);
Trong x l bin c kiu double, n v m l hai bin int tng ng vi a v b.
Hm khng c gi tr tr v: c dng nh mt cu lnh c lp, n khng c dng
trong lnh gn hoc trong cc biu thc so snh.
<Tn th tc>([Tham s]);
Gi s ta c hm: private void MySub(int a, int b)
Khi hm c gi nh sau: MySub (a, b);
Ch : Cc tham s khi xy dng hm c gi l tham s hnh thc, cc tham s khi s
dng hm gi l tham s thc s, hai loi tham s ny phi tng ng nhau v: s lng, th
t v kiu d liu.
Bi ging C s lp trnh 2 41


4.4. V d minh ha
Vit v thc hin hm tnh k! v hm by li chia cho 0. M mt d n mi ri g on m
sau vo ca s code.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double a;

private double Giaithua(int k )
{
double gt;
int i;
gt = 1;
for(i=1;i<=k;i++)
gt = gt * i;
return gt;
}

private void Division()
{
int i=0;
int n;
try
{
n = 4 / i;
MessageBox.Show(n.ToString());
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

private void Form1_Load(object sender, EventArgs e)
{
a = Giaithua(6);
MessageBox.Show(a.ToString());
Division();
}
}
}
Bi ging C s lp trnh 2 42


5. G ri chng trnh
trong nhng giai on u lp trnh cc chng trnh khng trnh khi c sai st v mc
li, tuy nhin ta c th gim kh nng mc li n mc ti thiu.
5.1. Mt s gii php gim li
Thit k cn thn, ghi ch cc vn quan trng v cch gii quyt cho tng phn.
Ghi ch tng th tc v mc ch ca n.
Ch thch r rng trong chng trnh (trong C# dng ch thch c bt u bi 2
du gch cho //).
t ch thch cho cc dng lnh, ta c th g 2 du gch cho // ti v tr cn t
ch thch, hoc bi en cc dng lnh ri kch chn biu tng trn thanh cng c
Standard. xa du ch thch cc dng lnh, ta c th xa 2 du gch cho // hoc
bi en cc dng lnh mun xa du ch thch ri kch chn biu tng trn thanh
cng c Standard.
Dng ca s danh sch cc thuc tnh, cc phng thc, cc hng s, cc lp i
tng trong C# trnh vic g sai tn thuc tnh, phng thc
gi ca s ny, trong ca s son tho code bm t hp phm Ctrl+J, kt qu khi
ngi dng g cc k t bt k, con tr s t ng cun ti dng u tin cha cc k
t cho ngi dng chn.

Hnh 18. Ca s danh sch thuc tnh, phng thc, s kin.
S dng cu lnh trycatch bt cc li ngoi l ca chng trnh.

Bi ging C s lp trnh 2 43


CHNG 4.
TM HIU CC IU KHIN C BN
1. Tm hiu thuc tnh, phng thc v s kin
Mi mt i tng trong C# u c 3 c tnh l Thuc tnh - Properties, Phng thc -
Methods v S kin Events. Trong :
Properties: l tp hp cc thuc tnh m t mt i tng nh: tn, chiu cao,
chiu rng, mu ch, mu nn Cc thuc tnh c th xc nh trong khi thit k
(Design time) hoc trong lc thi hnh (Run time).
Methodes: l nhng on chng trnh cha trong iu khin, cho iu khin bit
cch thc thc hin mt cng vic no , chng hn lm n s xut hin ca mt
iu khin (phng thc Hide).
Evens: nu thuc tnh m t i tng, phng thc ch ra cch thc i tng hnh
ng th s kin l nhng phn ng ca i tng. Khi to mt chng trnh trong
C#, ta lp trnh ch yu theo s kin, lp trnh theo cch ny c ngha l ta phi bit
khi no s kin xy ra v lm g khi s kin xy ra? iu ny c ngha l chng
trnh ch thi hnh khi ngi dng thc hin mt thao tc no trn giao din.
2. Mi quan h gia thuc tnh, phng thc v s kin
Mc d thuc tnh, phng thc v s kin c vai tr khc nhau nhng chng thng xuyn
lin h vi nhau. V d, nu ta di chuyn mt iu khin bng phng thc Move th mt s
thuc tnh nh Top, Height, Left, Width s thay i theo theo, khi kch c ca iu khin
thay i tc l s kin Resize xy ra.
Ph thuc ln nhau cn c ngha l ta c th thc hin mt cng vic bng nhiu cch: x l
trn thuc tnh hoc x l bng phng thc.
V d: ta c 2 cch lm hp vn bn textBox1 xut hin v bin mt trn mn hnh:
Thc hin bng thuc tnh:
Xut hin: textBox1.Visible = true;
Bin mt: textBox1.Visible = false;
Thc hin bng phng thc:
Xut hin: textBox1.Show();
Bi ging C s lp trnh 2 44


Bin mt: textBox1.Hide();
3. Thuc tnh, phng thc, s kin ca mt s iu khin c bn
3.1. Form
3.1.1. Thuc tnh
Name Tn form, bt u bi tip u ng frm
BackColor Thit lp mu nn cho Form.
BackgroundImage Thit lp nh nn cho Form.
BackgroundImageLayout Thit lp ch hin th nh nn trn Form. Tile: hin th nh t
trn xung, Center: hin th nh t gia ra, Stretch: dn u nh
trn Form.
AcceptButton Thit lp nt lnh Accept. S kin Click ca nt lnh ny c gi
bt c khi no ngi dng bm phm Enter.
CancelButton Thit lp nt lnh Cancel. S kin Click ca nt lnh ny c gi
bt c khi no ngi dng bm phm Esc.
Cursor Thit lp ch hin th con tr trn Form.
Enabled Nu nhn gi tr True th cho php ngi dng tc ng ln Form,
ngc li th nhn gi tr False.
Font Thit lp kiu ch, c ch cho cc iu khin trn Form.
ForeColor Thit lp mu ch cho cc iu khin trn Form.
FormBorderStyle Thit lp kiu ng vin cho Form. Fixed Single: khng th thay
i kch thc ca Form, Sizable: c th phng to thu nh v thay
i kch thc ca Form, Sizable ToolWindow: c th thay i
kch thc ca Form
Icon Thit lp biu tng cho Form (cc tp nh c ui .ico).
MainMenuStrip Gn kt Form vi Menu.
Opacity Thit lp trong sut cho nn ca Form, nu trong sut <
100% th c th nhn xuyn thu nhng g nm bn di Form.
ShowIcon Nu nhn gi tr True th cho php hin th biu tng c
thit lp thuc tnh Icon, ngc li th nhn gi tr False.
StartPosition Thit lp v tr xut hin ca Form trn mn hnh. Manual: xut
hin gc trn bn tri mn hnh, CenterScreen: gia mn hnh
Text Thit lp dng tiu ca Form.
Window State Thit lp trng thi ca Form khi chy chng trnh. Normal: hin
th Form ng theo kch c thit k, Maximized: phng to Form
Bi ging C s lp trnh 2 45


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

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

Hnh 19. Danh sch s kin ca iu khin Form
Mun gi s kin no th ta kch p chut vo tn s kin , kt qu C# s t ng to ra
dng tiu ca phng thc cha s kin trong ca s code.
Form c mt s s kin thng dng nh sau:
Load c kch hot khi Form c np vo b nh, n thng c dng khi
to cc gi tr v trng thi cho cc bin, cc iu khin trn Form.
Click c kch hot khi ngi dng kch chut trn Form.
FormClosed c kch hot khi ngi dng kch chut vo nt Close x gc trn bn phi
ng Form.
FormClosing Cng c kch hot khi ngi dng kch chut vo nt Close x, nhng xy ra
trc s kin FormClosed tc l c pht sinh trc khi ca s Form chun b
ng li.
V d: Nu khng mun ngi dng ng Form bng cch bm chn biu tng Close th
trong th tc FormClosing ta t thuc tnh Cancel = True nh sau:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
Bi ging C s lp trnh 2 46


{
e.Cancel = true;
}
3.2. Hp vn bn - TextBox
Hp vn bn l iu khin rt thng dng, dng nhp d liu u vo t pha
ngi s dng v hin th cc kt qu tnh ton c.
3.2.1. Thuc tnh
Name Tn Textbox, bt u bi tip u ng txt
BackColor Thit lp mu nn cho hp TextBox.
Enabled Enabled=False: khng cho php ngi dng truy cp vo TextBox (Hp
Textbox b m i), ngc li th bng True.
Font Thit lp kiu ch v c ch cho hp vn bn.
ForeColor Thit lp mu ch cho hp vn bn.
Locked Locked = True: kha khng cho php dch chuyn v tr ca hp vn bn trn
Form, ngc li th nhn gi tr False.
MaxLength Quy nh chiu di ti a c chp nhn ca hp vn bn, gi tr mc nh
l 32767 hoc 0, tc l c th cha 32767 k t. Mi xc lp khc 0, v d 5
th ch cho php ngi dng nhp ti a 5 k t vo hp vn bn.
Multiline Multiline = False: ch cho php hin th vn bn trn mt dng, v khi thit
k ta ch thay i c di ca hp vn bn.
Multiline = True: cho php vn bn c hin th trn nhiu dng, v c th
thay i c di ln rng ca hp vn bn khi thit k.
PasswordChar Thuc tnh ny cho php ngi s dng bo mt c thng tin nhp vo
Textbox. V d t thuc tnh ny bng k t * khi ton b d liu nhp
vo s c hin th di dng du hoa th.
ReadOnly ReadOnly = True: hp vn bn vn c truy cp nhng ngi dng khng
th thay i c ni dung bn trong.
ScrollBars Thit lp thanh cun ngang, dc cho hp vn bn (c hiu lc khi Multiline
= True). Ch : thanh cun ngang ch c hiu lc khi WordWrap = False.
TabIndex Th t truy cp ca hp vn bn khi ngi dng bm phm Tab, th t u
tin l 0.
Text Cha ni dung ca hp vn bn.
TextAlign Thit lp ch cn chnh: tri, phi hoc gia ca d liu trong hp
TextBox.
Visible Visible = True: hin th hp vn bn, Visible = False: n hp vn bn.
Bi ging C s lp trnh 2 47


WordWrap WordWrap = True: dng vn bn c t ng cun xung dng khi gp l
bn phi ca hp TextBox, ngc li th nhn gi tr False. Ch c hiu lc
khi Multiline = True.
3.2.2. S kin
Hp vn bn c mt s s kin c bn sau:
TextChanged c kch hot khi ngi dng thc hin s thay i bt k trong hp
vn bn nh: thm, xo, sa, dn vn bn.
Click c kch hot khi ngi dng kch chut vo hp vn bn.
DoubleClick c kch hot khi ngi dng kch p chut vo hp vn bn.
GotFocus c kch hot khi ngi dng chuyn tiu im ti hp vn bn.
KeyPress Tr v k t (tr cc k t c bit nh phm Delete, Home, Ctrl, F1)
m ngi s dng g vo hp vn bn thng qua thuc tnh KeyChar.
KeyDown Tr v m Ascii ca tt c cc k t m ngi s dng g vo hp vn
bn thng qua thuc tnh KeyCode.
LostFocus c kch hot khi hp vn bn mt tiu im.
MouseMove c kch hot khi ngi dng di chuyn chut qua hp vn bn.
MouseLeave c kch hot khi ngi dng di chut ra khi hp vn bn.
V d 1: hin th m Ascii ca mt k t bt k c g vo hp vn bn TextBox1 ta c
on chng trnh nh sau:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
int a;
a = Convert.ToInt32(e.KeyCode);
MessageBox.Show(a.ToString());
}
V d 2: Dng s kin KeyPress kim tra vic nhp d liu: ch cho php nhp vo hp
vn bn TextBox1 cc s t 0 ti 9, du m - , du chm thp phn . , phm Del (c m
Ascii=13) v phm Backspace (c m Ascii = 8) xa d liu. Ta c on chng trnh
nh sau:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (((e.KeyChar >='0') && (e.KeyChar <='9')) ||(e.KeyChar == '-') ||
(e.KeyChar == '.') || (Convert.ToInt32(e.KeyChar) == 8) ||
(Convert.ToInt32(e.KeyChar) == 13))
{
e.Handled = false;
}
else
Bi ging C s lp trnh 2 48


{
e.Handled = true;
}
}
Nu mi k t c nhp vo hp Textbox khng tho mn iu kin if

th s b hy b
bng cch t thuc tnh Handled l true.
3.3. Nt lnh Button
Nt lnh cho php ngi dng thc hin mt hnh ng no .
3.3.1. Thuc tnh
Name Tn nt lnh, bt u bi tip u ng btn
BackColor Thit lp mu nn cho nt lnh.
BackgroundImage Thit lp nh nn cho nt lnh.
Enabled Enabled=False: ngi dng khng th tc ng ln nt lnh, ngc li
th bng True.
Font Xc lp kiu ch v c ch cho nt lnh.
ForeColor Thit lp mu ch cho nt lnh.
Image Thit lp nh hin th trn nt lnh.
Locked Locked = True: kha khng cho php dch chuyn v tr ca nt lnh
trn Form, ngc li th nhn gi tr False.
TabIndex Th t truy cp ca nt lnh khi ngi dng bm phm Tab.
Text Tiu ca nt lnh. Ta c th quy nh phm nng cho nt lnh bng
cch t du & trc mt k t ca Text.
V d &Quit s c hin th l Quit, khi ngi s dng bm Alt+Q
chng trnh s kch hot nt lnh Quit.
Visible Visible = True: hin th nt lnh, Visible = False: n nt lnh.
3.3.2. S kin
Nt lnh c mt s s kin c bn sau:
Click c kch hot khi ngi dng kch chut vo nt lnh.
GotFocus c kch hot khi ngi dng chuyn tiu im ti nt lnh.
LostFocus c kch hot khi nt lnh mt tiu im.
MouseDown c kch hot khi ngi dng t chut vo nt lnh.
Bi ging C s lp trnh 2 49


MouseUp c kch hot khi ngi dng a chut ra khi nt lnh.
MouseMove c kch hot khi ngi dng di chuyn chut trn nt lnh.
MouseLeave c kch hot khi ngi dng di chut ra khi nt lnh.
3.4. Nhn Lable
Nhn dng hin th nhng thng tin c tnh cht c nh ngi s dng khng c
kh nng thay i v d nh dng thng bo, hng dn
Nhn c mt s thuc tnh hay dng sau:
Name Tn nhn, bt u bi tip u ng lbl
BackColor Thit lp mu nn cho nhn, nu thit lp BackColor = Transparent (mc
la chn u tin trong tab Web) th nhn s c nn ging vi nn ca
Form.
BorderStyle Thit lp kiu ng vin cho nhn.
Font Thit lp kiu ch v c ch cho nhn.
ForeColor Thit lp mu ch cho nhn.
Image Thit lp nh hin th trn nhn.
Locked Locked = True: kha khng cho php dch chuyn v tr ca nhn trn
Form, ngc li th nhn gi tr False.
TabIndex Th t truy cp ca nhn khi ngi dng bm phm Tab.
Text Tiu ca nhn.
TextAlign Thit lp ch cn chnh: tri, phi hoc gia ca tiu nhn.
Visible Hin hoc n nhn.
3.5. Dng mch nc - ToolTip
iu khin mch nc cho php hin th cc thng tin ch thch khi ngi dng
a chut qua iu khin c thit lp ToolTip.
V d dng mch nc Hy nhp tn truy cp nh hnh di y.
Bi ging C s lp trnh 2 50



Hnh 20. V d ToolTip
to dng mch nc cho mt iu khin ta thc hin nh sau:
Ko iu khin ToolTip vo Form, iu khin ToolTip khng c hin th trn
Form m c hin th thanh ngang cui Form v c dng chung cho mi iu
khin trn form.
Kch chut chn iu khin mun to ToolTip, trong ca s Window Properties g
ni dung dng ToolTip ti thuc tnh ToolTip on ToolTip1.
3.6. Bi tp
Bi tp 2.
Lp chng trnh nhp thng v nm dng lch, tnh v in ra s ngy ca thng v nm .

Hnh 21. Giao din bi tp 2
Yu cu: + Ch c php nhp s nguyn vo hai hp vn bn cha thng v nm.
+ Thng phi c gi tr t 1 n 12, nm gm 4 ch s v c gi tr >=1900.
+ Kt qu ch c tnh khi ngi dng nhp c thng v nm.
Bi ging C s lp trnh 2 51


To d n mi v thit lp cc thuc tnh ca cc iu khin nh sau:
iu khin Thuc tnh Gi tr
Form1
Name frmNgaythang
FormBorderStyle Fixed3D
Icon Chn file nh c ui .ico bt k
Text Program of date
Lable1 Text Nhp thng
Lable2 Text Nhp nm
Lable3

Name lblKetqua
Text Kt qu:
TextBox1
Name txtNhapthang
MaxLength 2
TextBox2
Name txtNhapnam
MaxLength 4
Button1
Name btnKetqua
Text &Kt qu
Button2
Name btnLamlai
Text &Lm li
Button3
Name btnThoat
Text &Thot

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class frmNgaythang : Form
{
public frmNgaythang()
{
InitializeComponent();
}

private void txtNhapthang_KeyPress(object sender, KeyPressEventArgs e)
{
if (((e.KeyChar >='0') && (e.KeyChar <='9'))||(Convert.ToInt32(e.KeyChar)==8))
e.Handled = false;
else
e.Handled = true;
Bi ging C s lp trnh 2 52


}

private void txtNhapnam_KeyPress(object sender, KeyPressEventArgs e)
{
if (((e.KeyChar >='0') && (e.KeyChar <='9'))||(Convert.ToInt32(e.KeyChar)==8))
e.Handled = false;
else
e.Handled = true;
}

private void btnKetqua_Click(object sender, EventArgs e)
{
int thang, nam, ngay = 0;
if (txtNhapthang.Text == "")
{
MessageBox.Show("Bn phi nhp thng", "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtNhapthang.Focus();
return;
}
if (txtNhapnam.Text.Length != 4)
{
MessageBox.Show("Bn phi nhp nm c 4 ch s", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapnam.Focus();
txtNhapnam.Text = "";
return;
}
thang = Convert.ToInt32(txtNhapthang.Text);
nam = Convert.ToInt32(txtNhapnam.Text);
if (thang > 12 || thang < 0)
{
MessageBox.Show("Bn phi nhp thng trong [1,12]", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapthang.Focus();
txtNhapthang.Text = "";
return;
}
if (nam < 1900)
{
MessageBox.Show("Bn phi nhp nm c gi tr >= 1900", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapnam.Focus();
txtNhapnam.Text = "";
return;
}
switch (thang)
{
case 4:
case 6:
case 9:
case 11:
ngay = 30;
break;
case 1:
case 3:
case 5:
Bi ging C s lp trnh 2 53


case 7:
case 8:
case 10:
case 12:
ngay = 31;
break;
case 2:
if (((nam % 4 == 0) && (nam % 100 != 0))||(nam % 400 == 0))
ngay = 29;
else
ngay = 28;
break;
}
lblKetqua.Text = "Thng " + thang + " nm " + nam + " c " + ngay + " ngy";
btnKetqua.Enabled = false;
btnLamlai.Enabled = true;
txtNhapthang.ReadOnly = true;
txtNhapnam.ReadOnly = true;
}

private void btnLamlai_Click(object sender, EventArgs e)
{
txtNhapthang.Text = "";
txtNhapthang.ReadOnly = false;
txtNhapthang.Focus();
txtNhapnam.Text = "";
txtNhapnam.ReadOnly = false;
btnKetqua.Enabled = true;
lblKetqua.Text = "Kt qu: ";
}

private void btnThoat_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bn c mun thot khng?", "Thng bo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
}
}
Bi tp 3.
Nhp 2 s nguyn a, b v tnh tng cc s t a n b theo giao din sau:
Bi ging C s lp trnh 2 54



Hnh 22. Giao din bi tp 3
Yu cu:
To dng ToolTip Nhp s nguyn cho 2 hp vn bn Nhp a v Nhp b.
Ch cho php ngi dng nhp s vo hai hp vn bn.
Nt Tng: kim tra ngi dng phi nhp d liu cho c hai s a v b, tnh tng cc
s t a n b nu a < b, hoc tnh tng cc s t b n a nu b < a, ri hin th kt qu
vo nhn pha di.
Nt Lm li: xa cc d liu c cc iu khin, sau t con tr vo hp vn bn
Nhp a.
Nt Thot: thot khi chng trnh quay v mi trng son tho.
Bi tp 4.
Nhp s nguyn dng n, to n s nguyn ngu nhin c gi tr t 1 ti 100, v thc hin cc
yu cu sau:
Ch cho php ngi dng nhp s vo hp vn bn Nhp n.
Nt Nhp: kim tra ngi dng phi nhp gi tr cho n, sau to n s ngu nhin v
hin th cc s ngu nhin nhn Dy s.
Nt Tnh tng: tnh tng n s ngu nhin v hin th kt qu nhn Tng dy s.
Nt Sp xp: sp xp n s ngu nhin theo th t tng dn v hin th kt qu nhn
Sp xp.
Bi ging C s lp trnh 2 55


Nt Lm li: xa cc d liu c cc iu khin, sau t con tr vo hp vn bn
Nhp n.
Nt Thot: thot khi chng trnh quay v mi trng son tho.

Hnh 23. Giao din bi tp 4
Bi tp 5.
Hp thoi MessageBox ca C# tuy rt a dng v phong ph nhng c lc ta cng cn mt
hp thoi tng t theo phong cch ring ca mnh, v d hin th tiu cho cc nt nhn
bng ting Vit.
V d: vit chng trnh t to hp thoi thng bo thc hin cc yu cu theo giao din sau:

Hnh 24. Giao din bi tp 5
Kch chut vo nt Thot trn Form1 s xut hin hp thng bo Bn c mun thot khng?
vi giao din ting Vit. Chn nt C ng Form1 v thot khi chng trnh, chn nt
Khng quay li Form1.
Bi ging C s lp trnh 2 56


Trong hp thng bo Bn c mun thot khng? chnh l mt form c thit k tng
t nh mt hp thoi thng bo.
Bc 1: Xy dng Form1
Vo Microsoft Visual Studio 2010 to mt d n mi c tn Hopthoai v thit lp cc thuc
tnh ca cc iu khin nh sau:
iu khin Thuc tnh Gi tr
Form1
Name Form1
StartPosition CenterScreen
Button1
Name btnThoat
Text Thot
Bc 2: Xy dng form Thng bo
Ta b sung thm mt form mi vo d n theo cc bc sau:
Chn menu Project | Add Windows Forms xut hin hp thoi Add New Item.
Chn Windows Form v t tn Message.cs ti Name ri chn nt Add. Kt qu
form Message.cs c thm vo d n.
Thay i kch thc ca form Message.cs nh hnh trn v thit lp cc thuc tnh
ca cc iu khin trn form nh sau:
iu khin Thuc tnh Gi tr
Message.vb
Name frmMessage
FormBorderStyle FixedToolWindow
ShowIcon False
StartPosition CenterScreen
Text Thng bo
Lable1
Name lblMessage
Modifiers Public
PictureBox1 Image Question.bmp
Button1
Name btnCo
DialogResult Yes
Text C
Button2 Name btnKhong
Bi ging C s lp trnh 2 57


DialogResult No
Text Khng
Bc 3: Vit Code
M ca s code ca Form1 v vit m lnh cho nt btnThoat nh sau:
private void btnThoat_Click(object sender, EventArgs e)
{
frmMessage frm = new frmMessage();
frm.lblMessage.Text = "Bn c mun thot khng?";
if (frm.ShowDialog() == System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
Ch :
T mt form ta khng th tc ng trc tip ti mt form khc m phi khai bo mt
bin i din cho form mun tc ng v mi thao tc u c thc hin trn bin
ny. V d t form Form1 mun hin th hoc tc ng ti cc iu khin trong form
frmMessage ta khai bo bin frm c kiu l frmMessage nh trn.
hin th mt Form khc ta gi phng thc ShowDialog theo c php sau:
TnbinForm.ShowDialog();
truy cp ti thuc tnh ca cc iu khin trong mt Form khc ta thc hin theo
c php sau:
TnbinForm.Tniukhin.Tnthuctnh =Gitr;
Khi ta thit lp gi tr DialogResult cho mt nt lnh th nu ngi dng kch chut
vo nt lnh ca s Form cha nt lnh s b ng li v tr v gi tr ca
DialogResult ti ni gi phng thc ShowDialog() hin th Form .
PictureBox l mt iu khin cho php cha cc tp nh c ui .bmp, .jpg Trong
my tnh khng c sn tp nh Question.bmp m ta phi t to bng ng dng Paint.
4. Mt s iu khin c bn khc
4.1. Nhm GroupBox
Nhm c th cha cc iu khin khc v to thnh cc vng lm vic c lp
trn mt Form.
GroupBox c mt s thuc tnh thng dng sau:
Bi ging C s lp trnh 2 58


Name Tn nhm, bt u bi tip u ng grb
BackColor Thit lp mu nn cho nhm, nu BackColor = Transparent
th nhm s c mu nn ging vi mu nn ca Form.
BackgroundImage Thit lp nh nn cho nhm.
BackgroundImageLayout Thit lp ch hin th nh nn ca nhm.
Enabled Nu Enabled = False nhm s khng hot ng.
Font Xc lp kiu ch v c ch ca tiu nhm.
ForeColor Xc lp mu ch ca tiu nhm.
Locked Locked = True: kha khng cho php dch chuyn v tr ca
nhm trn Form, ngc li th nhn gi tr False.
TabIndex Th t truy cp ca nhm khi ngi dng bm phm Tab.
Text Thit lp tiu ca nhm.
Visible Visible = True: hin th nhm, Visible = False: n nhm.

4.2. Hp nh du CheckBox
Hp nh du cho php ng thi khng chn, chn mt, hoc chn nhiu kh
nng trong mt nhm cc la chn.
4.2.1. Thuc tnh
Name Tn hp CheckBox, bt u bi tip u ng chk
BackColor Thit lp mu nn cho hp CheckBox.
BackgroundImage Thit lp nh nn cho hp CheckBox.
Checked Tr v gi tr ca hp CheckBox ng vi trng thi ca n khi
tng tc vi ngi s dng:
+ Checked =True: hp CheckBox ang c chn
+ Checked = False: hp CheckBox khng c chn.
CheckState Thit lp trng thi cho hp CheckBox:
+ CheckState = Checked: hp CheckBox c chn
+ CheckState = Unchecked: hp CheckBox khng c chn.
Enabled Nu Enabled = False hp CheckBox s khng hot ng.
Font Xc lp kiu ch v c ch ca ni dung hp CheckBox.
ForeColor Xc lp mu ch ca ni dung hp CheckBox.
Bi ging C s lp trnh 2 59


Image Thit lp nh hin th trn hp CheckBox.
Locked Locked = True: kha khng cho php dch chuyn v tr ca hp
CheckBox trn Form, ngc li th nhn gi tr False.
TabIndex Th t truy cp khi ngi dng bm phm Tab.
Text Thit lp ni dung ca hp CheckBox.
Visible Visible = True: hin th hp CheckBox
Visible = False: n hp CheckBox.

4.2.2. S kin
Click c kch hot khi ngi dng kch chut vo hp CheckBox.
GotFocus c kch hot khi ngi dng chuyn tiu im ti hp CheckBox.
LostFocus c kch hot khi hp CheckBox mt tiu im.
CheckedChanged c kch hot khi hp CheckBox thay i trng thi.
4.3. Nt tu chn RadioButton
Nt tu chn ch cho php ngi dng chn mt kh nng trong mt nhm cc
la chn.
4.3.1. Thuc tnh
Name Tn nt tu chn, bt u bi tip u ng rdo
BackColor Thit lp mu nn cho nt ty chn.
BackgroundImage Thit lp nh nn cho nt ty chn.
Checked Tr v gi tr ca nt ty chn khi tng tc vi ngi s dng.
+ Checked = True: nt ty chn ang c chn
+ Checked = False: nt ty chn khng c chn.
Enabled Nu Enabled = False nt tu chn s khng hot ng.
Font Xc lp kiu ch v c ch ca ni dung nt ty chn.
ForeColor Xc lp mu ch ca ni dung nt ty chn.
Image Thit lp nh hin th trn nt ty chn.
Locked Locked = True: kha khng cho php dch chuyn v tr ca nt
ty chn trn Form, ngc li th nhn gi tr False.
TabIndex Th t truy cp khi ngi dng bm phm Tab.
Bi ging C s lp trnh 2 60


Text Thit lp ni dung ca nt ty chn.
Visible True: hin th nt ty chn, False: n nt ty chn.
4.3.2. S kin
Click c kch hot khi ngi dng kch chut vo nt tu chn.
GotFocus c kch hot khi ngi dng chuyn tiu im ti nt tu chn.
LostFocus c kch hot khi nt tu chn mt tiu im.
CheckedChanged c kch hot khi nt ty chn thay i trng thi.

Bi tp 6.
Lp chng trnh nhp 2 s a v b, chn v thc hin cc php ton theo yu cu sau:
Ch c nhp s cho a v b, khng cho php nhp d liu vo hp kt qu.
Cc php ton ch c thc hin khi ngi dng nhp hai d liu cho a v b.
Trong php chia kim tra nu b = 0 th thng bo Mu = 0 ti hp Kt qu.
Kch chn php ton no th thc hin php ton i vi a, b v lu kt qu vo
hp Kt qu.
Nu chn hp nh du Max th hin th Max = <Gi tr max> ngc li ch hin
th Max. Thc hin tng t cho hp nh du Min.
Bi ging C s lp trnh 2 61



Hnh 25. Giao din bi tp 6
Vo Microsoft Visual Studio 2010 to mt d n mi t tn l Calculation v thit lp cc
thuc tnh ca cc iu khin nh sau:
iu khin Thuc tnh Gi tr
Form1
Name frmCalculation
FormBorderStyle Fixed3D
Icon Chn file nh c ui .ico bt k
Text Program of Calculation
GroupBox1 Text Rng
GroupBox2 Text Php ton
GroupBox3 Text So snh
Lable1 Text Nhp a =
Lable2 Text Nhp b =
Lable3 Text Kt qu =
TextBox1 Name txtNhapA
TextBox2 Name txtNhapB
TextBox3 Name txtKetqua
RadioButton1
Name rdoCong
Text Cng
Bi ging C s lp trnh 2 62


RadioButton2
Name rdoTru
Text Tr
RadioButton3
Name rdoNhan
Text Nhn
RadioButton4
Name rdoChia
Text Chia
CheckBox1
Name chkMax
Text Max
CheckBox2
Name chkMin
Text Min
Button1
Name btnLamlai
Text Lm li
Button2
Name btnThoat
Text Thot
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void txtNhapa_KeyPress(object sender, KeyPressEventArgs e)
{
if (((e.KeyChar >='0') && (e.KeyChar <='9'))||(Convert.ToInt32(e.KeyChar)==8))
e.Handled = false;
else
e.Handled = true;
}

private void rdoCong_Click(object sender, EventArgs e)
{
int a,b;
if (txtNhapa.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho a", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapa.Focus();
rdoCong.Checked = false;
return;
}
if (txtNhapb.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho b", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapb.Focus();
rdoCong.Checked = false;
return;
}
a = Convert.ToInt32(txtNhapa.Text);
b = Convert.ToInt32(txtNhapb.Text);
txtKetqua.Text = Convert.ToString(a + b);
txtNhapa.Enabled = false;
Bi ging C s lp trnh 2 63


txtNhapb.Enabled = false;
}

private void chkMax_Click(object sender, EventArgs e)
{
int a,b;
if (txtNhapa.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho a", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapa.Focus();
chkMax.Checked = false;
return;
}
if (txtNhapb.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho b", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapb.Focus();
chkMax.Checked = false;
return;
}
a = Convert.ToInt32(txtNhapa.Text);
b = Convert.ToInt32(txtNhapb.Text);
if (chkMax.Checked == true)
{
if (a>b)
chkMax.Text = "Max= " + a.ToString ();
else
chkMax.Text = "Max= " + b.ToString ();
}
else
chkMax.Text = "Max";
txtNhapa.Enabled = false;
txtNhapb.Enabled = false;
}

Ch : trong on m lnh trn tt c cc th tc: rdoCong_Click, rdoTru_Click,
rdoNhan_Click, rdoChia_Click, chkMax_Click, chkMin_Click u phi kim tra ngi dng
nhp d liu vo hai hp vn bn txtNhapA v txtNhapB. khng phi vit li on m
lnh kim tra nhiu ln ta vit mt hm KiemtraAB nh sau:
private bool KiemtraAB()
{
if (txtNhapa.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho a", "Thng
bo",MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNhapa.Focus();
return false;
}
if (txtNhapb.Text == "")
{
MessageBox.Show("Bn phi nhp gi tr cho b", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
Bi ging C s lp trnh 2 64


txtNhapb.Focus();
return false;
}
return true;
}
private void rdoCong_Click(object sender, EventArgs e)
{
int a, b;
if (KiemtraAB() == false)
{
rdoCong.Checked = false;
}
else
{
a = Convert.ToInt32(txtNhapa.Text);
b = Convert.ToInt32(txtNhapb.Text);
txtKetqua.Text = Convert.ToString(a + b);
txtNhapa.Enabled = false;
txtNhapb.Enabled = false;
}
}
// Tng t vit m lnh cho cc th tc khc
Bi tp 7.
Lp chng trnh thc hin bi ton theo yu cu v giao din nh sau:

Hnh 26. Giao din bi tp 7
Kim tra ngi dng phi nhp d liu cho M hng, n gi v s lng.
Ch c php nhp gi tr s cho n gi v S lng.
Bi ging C s lp trnh 2 65


Nu Gim gi c chn th hin th 2 iu khin gim gi 5% v 10%, ngc li
khng hin th 2 iu khin ny.
4.4. Hp danh sch ListBox
Hp ListBox l mt tp hp cc chui k t c trnh by di dng lit k
thnh tng dng trong mt khung hnh ch nht. Ta c th chn, b sung hoc xo mt gi
tr trong hp danh sch.
Khi hin th d liu, nu chiu ngang ca Listbox nh hn di cc phn t th mt phn
d liu s b che khut, cn nu s phn t ca Listbox vt qu chiu di ca Listbox th
Listbox t ng cung cp thanh cun dc cun ti cc phn t pha di.
4.4.1. Thuc tnh
Name Tn hp ListBox, bt u bi tip u ng lst
BackColor Thit lp mu nn cho hp danh sch.
DataSource Thit lp ngun d liu cho ListBox
Enabled Nu Enabled = False hp danh sch s khng hot ng.
Font Xc lp kiu ch v c ch cho hp danh sch.
ForeColor Xc lp mu ch cho hp danh sch.
MultiColumn MultiColumn = True: cho php hin th d liu theo nhiu ct.
MultiColumn = False: ch cho php hin th d liu theo 1 ct.
ColumnWidth Thit lp rng cho mi ct trong ListBox.
Items Khi to gi tr cho cc phn t ca hp danh sch trong thi gian thit k.
Khi chn thuc tnh Items trong ca s Properties, C# m ra mt hp son
tho cho php ngi lp trnh g vo gi tr cc phn t. Mi phn t c
t trn mt dng ring bit, xung dng nhn Enter.
Items.Count Tr v tng s phn t ca danh sch trong thi gian thi hnh.
Items[n] Tr v ni dung phn t th n ca danh sch trong thi gian thi hnh.
SelectedItem
hoc Text
Tng t nh thuc tnh Items[n], nhng ch c th tr v ni dung ca
phn t hin hnh ang c chn.
Locked Locked = True: kha khng cho php dch chuyn v tr ca hp danh sch
trn Form, ngc li th nhn gi tr False.
SelectedIndex Tr v s th t ca phn t ang c chn trong danh sch, phn t u
tin c SelectedIndex = 0, nu khng c phn t no c chn th
SelectedIndex = -1
SelectionMode Quy nh ch la chn cc phn t trong hp danh sch khi thc thi
chng trnh. SelectionMode c 4 gi tr: None - khng cho php la chn
Bi ging C s lp trnh 2 66


cc phn t, One - cho php chn mt phn t, MultiSimple - cho php la
chn nhiu phn t ring bit, MultiExtended - cho php chn mt khi cc
phn t lin nhau.
SelectedItems Tr v tp cc phn t ang c chn.
Sorted Nu Sorted = True th cc phn t trong danh sch c sp xp theo th t
ABC.
TabIndex Th t truy cp khi ngi dng bm phm Tab.
Visible True: hin th hp danh sch, False: n hp danh sch.
4.4.2. S kin
Click c kch hot khi ngi dng kch chut vo hp danh sch.
DoubleClick c kch hot khi ngi dng kch p chut vo hp danh sch.
GotFocus c kch hot khi ngi dng chuyn tiu im ti hp danh sch.
LostFocus c kch hot khi hp danh sch mt tiu im.
SelectedIndex_
Changed
c kch hot khi ngi dng thay i trng thi la chn cc dng d
liu trong hp vn bn.
4.4.3. Phng thc
Add: dng b sung mt phn t cho hp danh sch trong thi gian thi hnh v thng
c vit trong th tc Form_Load. C php ca phng thc ny l:
ListName.I tems.Add(I tem);
Trong ListName l tn ca hp danh sch, Item l ni dung ca phn t ta mun thm
vo hp danh sch.
V d, b sung phn t c gi tr Ha Noi vo hp danh sch lstQue ta thc hin nh sau:
lstQue.Items.Add(Ha Noi);
Remove: dng loi b mt phn t ca hp danh sch theo ni dung trong thi gian thi
hnh. C php ca phng thc ny l:
ListName.I tems.Remove(I tem);
V d, xa phn t c gi tr Ha Noi trong hp danh sch lstQue ta vit nh sau:
lstQue.Items.Remove(Ha Noi);
RemoveAt: dng loi b mt phn t ca hp danh sch theo ch s trong thi gian thi
hnh. C php ca phng thc ny l:
Bi ging C s lp trnh 2 67


ListName.I tems.RemoveAt(I ndex);
V d, xa phn t v tr 1 trong hp danh sch lstQue ta vit nh sau:
lstQue.Items.RemoveAt(1);
Clear: dng loi b tt c cc phn t ca hp danh sch trong thi gian thi hnh. C
php ca phng thc ny l:
ListName.I tems.Clear();
V d, xa tt c cc phn t trong hp danh sch lstQue ta vit nh sau:
lstQue.Items.Clear();
Bi tp 8.
Vit chng trnh minh ho cc thao tc trn hp Listbox theo yu cu sau:
Nhp mt tn nc vo hp vn bn Nhp tn nc, chn nt Thm mi thm
nc vo hp danh sch, chn nt Tm kim xem nc c trong hp danh
sch cha?
Chn nt Xa xo mt tn nc bt k c chn t hp danh sch.
Chn nt Thot thot khi chng trnh.

Hnh 27. Giao din bi tp 8
Vo Microsoft Visual Studio 2010 to mt d n mi v thit lp cc thuc tnh ca cc iu
khin nh sau:
Bi ging C s lp trnh 2 68


iu khin Thuc tnh Gi tr
Form1
Name frmTennuoc
FormBorderStyle Fixed3D
Icon Chn file nh c ui .ico bt k
Text Chuong trinh minh hoa Listbox
Lable1 Text Nhp tn nc
Lable2 Text Danh sch cc nc
TextBox1 Name txtNuoc
ListBox1 Name lstNuoc
Button1
Name btnThemmoi
Text &Thm mi
Button2
Name btnXoa
Text &Xa
Button3
Name btnTimkiem
Text Tm &kim
Button4
Name btnThoat
Text T&hot
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void Form1_Load(object sender, EventArgs e)
{
txtNuoc.Focus();
btnTimkiem.Enabled = false;
btnXoa.Enabled = false;
}

private void btnThemmoi_Click(object sender, EventArgs e)
{
if (txtNuoc.Text == "")
{
MessageBox.Show("Bn phi nhp tn nc", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNuoc.Focus();
return;
}
lstNuoc.Items.Add(txtNuoc.Text);
txtNuoc.Text = "";
txtNuoc.Focus();
btnXoa.Enabled = true;
btnTimkiem.Enabled = true;
}

private void btnXoa_Click(object sender, EventArgs e)
{
if (lstNuoc.Items.Count == 0)
{
Bi ging C s lp trnh 2 69


MessageBox.Show("Khng cn phn t no xo", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
btnXoa.Enabled = false;
btnTimkiem.Enabled = false;
return;
}
if (lstNuoc.SelectedIndex == -1)
{
MessageBox.Show("Bn phi chn mt nc xo", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("Bn c mun xo khng?", "Thng bo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
lstNuoc.Items.RemoveAt(lstNuoc.SelectedIndex);
}
private void btnTimkiem_Click(object sender, EventArgs e)
{
int i, index, d =0;
if (lstNuoc.Items.Count == 0)
{
MessageBox.Show("Khng cn phn t no tm kim", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
btnXoa.Enabled = false;
btnTimkiem.Enabled = false;
return;
}
if (txtNuoc.Text == "")
{
MessageBox.Show("Bn phi nhp tn nc tm kim", "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNuoc.Focus();
return;
}
for (i = 0; i<= lstNuoc.Items.Count 1; i++)
if (lstNuoc.Items[i].ToString().ToLower() == txtNuoc.Text.ToLower())
{
d = 1;
index = i;
break;
}
if (d == 1)
{
MessageBox.Show("C tm thy nc " + txtNuoc.Text, "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
lstNuoc.SelectedIndex = index;
}
else
MessageBox.Show("Khng tm thy nc " + txtNuoc.Text, "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
txtNuoc.Text = "";
txtNuoc.Focus();
}
Bi tp 9.
Bi ging C s lp trnh 2 70


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

Hnh 28. Giao din bi tp 9
Yu cu: + Nhp vo hp danh sch 100 phn t t Items 1 n Items 100.
+ D liu c hin th thnh 4 ct trong mt trang mn hnh.
+ Ngi dng c th la chn ng thi mt hoc nhiu phn t.
Vo Microsoft Visual Studio 2010 to mt d n mi, t mt hp danh sch lstDanhsach
v mt nt lnh btnKetqua vi tiu l Kt qu vo form Form1.
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void Form1_Load(object sender, EventArgs e)
{
// Cho php hin th nhiu ct
lstDanhsach.MultiColumn = true ;
// Hin th 4 ct trong mt trang
lstDanhsach.ColumnWidth = lstDanhsach.Width / 4;
// Cho php chn ng thi nhiu phn t
lstDanhsach.SelectionMode = SelectionMode.MultiSimple;
// Add d liu vo hp danh sch
for (int i = 1 ; i <= 100; i++)
lstDanhsach.Items.Add("Items " + i);
}

private void btnKetqua_Click(object sender, EventArgs e)
{
string str = "";
// Duyt qua tng phn t chn
foreach (string Item in lstDanhsach.SelectedItems)
Bi ging C s lp trnh 2 71


str = str + Item + ", ";
// Xa du phy v du cch tha cui chui str
str = str.Remove(str.Length - 2, 2);
MessageBox.Show("Bn chn phn t " + str, "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
4.5. Hp la chn ComboBox
Hp ComboBox cho php lu tr v la chn mt mc d liu trong mt hp
danh sch th xung.
4.5.1. Thuc tnh
Name Tn hp ComboBox, bt u bi tip u ng cbo
BackColor Thit lp mu nn cho hp Combo.
DataSource Thit lp ngun d liu cho Combo.
DropDownStyle DropDown gm mt hp vn bn cho php ngi s dng c th nhp d
liu, k bn c mt mi tn , nhn vo s x ra mt danh sch cc mc
d liu cho php ngi dng chn la.
Simple lun hin th sn danh sch cc mc d liu bn di hp vn bn v
cho php ngi s dng c th nhp d liu vo hp vn bn.
DropDownList tng t nh DropDown nhng ngi s dng ch c th
chn cc phn t t danh sch, khi g mt k t vo hp vn bn th danh
sch s cun n cc phn t c bt u bi k t .
Enabled Nu Enabled = False hp Combo s khng hot ng.
Font Xc lp kiu ch v c ch cho hp Combo.
ForeColor Xc lp mu ch cho hp Combo.
Items Khi to gi tr cc phn t ca hp Combo trong thi gian thit k.
Items.Count Tr v tng s phn t ca hp Combo trong thi gian thi hnh.
Items[n] Tr v ni dung phn t th n ca hp Combo trong thi gian thi hnh
SelectedItem
hoc Text
Tr v ni dung ca phn t hin hnh ang c chn.
SelectedIndex Tr v s th t ca phn t ang c chn, phn t u tin c
SelectedIndex=0, nu khng c phn t no c chn th SelectedIndex= -1
Sorted True: cc phn t trong danh sch c sp xp theo th t ABC.
TabIndex Th t truy cp khi ngi dng bm phm Tab.
Visible True: hin th hp Combo, False: n hp Combo.
4.5.2. S kin
Bi ging C s lp trnh 2 72


Click c kch hot khi ngi dng kch chut vo hp Combo.
DoubleClick c kch hot khi ngi dng kch p chut vo hp Combo.
GotFocus c kch hot khi ngi dng chuyn tiu im ti hp Combo.
LostFocus c kch hot khi hp Combo mt tiu im.
SelectedIndex_
Changed
c kch hot khi ngi dng thay i trng thi la chn cc dng d liu
trong hp vn bn.
TextChanged c kch hot khi ngi dng nhp, sa, xa d liu ti vng vn bn ca
hp Combo hoc khi thay i thuc tnh Text ca hp Combo t m lnh.
DropDown Ch xy ra i vi hp Combo DropDown v DropDownList, s kin ny
c gi ngay sau khi ngi dng nhp mi tn th hp danh sch xung
(phm tt Alt+). V th s kin ny ch yu c s dng nhp d liu
cho cc phn t ca hp Combo.

4.5.3. Phng thc
Add: dng b sung mt phn t cho hp Combo trong thi gian thi hnh v thng c
vit trong th tc Form_Load. C php:
ComboName.I tems.Add(I tem);
Vi ComboName l tn hp Combo, Item l ni dung phn t mun thm vo hp Combo.
V d, b sung phn t c gi tr Ha Noi vo hp Combo cboQue:
cboQue.Items.Add(Ha Noi);
Remove: dng loi b mt phn t ca danh sch theo ni dung trong thi gian thi hnh.
C php:
ComboName.I tems.Remove(I tem);
V d, xa phn t c gi tr Ha Noi trong hp Combo cboQue:
cboQue.Items.Remove(Ha Noi);
RemoveAt: dng loi b mt phn t ca hp Combo theo ch s trong thi gian thi
hnh. C php:
ComboName.I tems.RemoveAt(I ndex);
V d, xa phn t v tr 1 trong hp Combo cboQue:
cboQue.Items.RemoveAt(1);
Bi ging C s lp trnh 2 73


Clear: dng loi b tt c cc phn t ca hp Combo trong thi gian thi hnh. C php:
ComboName.I tems.Clear();
V d, xa tt c cc phn t trong hp Combo cboQue:
cboQue.Items.Clear();
V d: Gi s c hp combo cboQue, nhp d liu cho n ta c 2 cch sau:
Cch 1: Cp nhp bng th tc Form_Load:
private void Form1_Load(object sender, EventArgs e)
{
cboQue.Items.Add("H Ni");
cboQue.Items.Add("Nam nh");
}
Cch 2: Cp nhp bng s kin DropDown:
private void cboQue_DropDown(object sender, EventArgs e)
{
cboQue.Items.Clear();
cboQue.Items.Add("H Ni");
cboQue.Items.Add("Nam nh");
}
Bi tp 10.
Ly danh sch cc th mc c trong th mc D:\Baigiang lu vo hp Combo thng qua
thuc tnh DataSource.

Hnh 29. Giao din bi tp 10
Vo Microsoft Visual Studio 2010 to mt d n mi, t mt hp combo cboThumuc vo
form frmCombo.
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
Bi ging C s lp trnh 2 74


private void frmCombo_Load(object sender, EventArgs e)
{
string[] Folder;
Folder = System.IO.Directory.GetDirectories("D:\\Baigiang");
cboThumuc.DataSource = Folder;
}
Bi tp 11.
Lp chng trnh thc hin cc cng vic thay i Font ch theo giao din di y:

Hnh 30. Giao din bi tp 11
Gi : C php thay i kiu Font ch:
<Tniukhin>.Font = new Font("TnFont", Cch) ;
C php thay i hiu ng font ch:
<Tniukhin>.Font = new Font(<Tniukhin>.Font, FontStyle.Hiung) ;
Trong Hiu ng c th nhn cc gi tr: Bold, Regular, Italic, UnderLine, Strikeout.
kt hp cc hiu ng ta dng ton t |, loi tr cc hiu ng ta dng ton t ^, ly hiu
ng ca iu khin ta dng c php <Tniukhin>.Font.Style
C php thay i mu ch:
<Tniukhin>.ForeColor = Color.Mu ;
Bi tp 12.
Bi ging C s lp trnh 2 75


Lp chng trnh ghp tn nc v tn thnh ph theo giao din v yu cu di y:

Hnh 31. Giao din bi tp 12
Vit th tc EmptyOption() b chn tt c cc RadioButton tn thnh ph.
Khi kch chn vo mt nc, gi s France th xut hin dng thng bo: Hy chn
thnh ph cho France v gi th tc EmptyOption
Khi kch chn mt thnh ph, nu ng l thnh ph ca tn nc chn th xut
hin dng thng bo, v d: Chc mng bn, th ca France l Paris, ngc li
thng bo, v d: Bn sai ri, th ca France khng phi l London
Bi tp 13.
Lp chng trnh thc hin cc cng vic theo giao din v yu cu di y:
Chng trnh c mt Form bn hng trc tuyn, danh sch cc mt hng c hin
th sn trong hp Listbox hoc CheckedListBox Danh sch cc mt hng
Bi ging C s lp trnh 2 76


mua hng ngi dng kch p vo mt hng cn mua trong Danh sch cc mt
hng, mt hng c chn s c hin th vo trong Hng t mua.

Hnh 32. Giao din bi tp 13
Ch : Khi mua hng phi kim tra nu mt hng ny c mua th dng hp thoi thng
bo chn mt hng v khng c mua mt hng na.

Ngi dng c th xo cc mt hng trong danh sch cc mt hng chn bng cch kch
p vo mt hng cn xo, trc khi xo phi hi li ngi dng c mun xo mt hng
hay khng?
Bi ging C s lp trnh 2 77



Khi kch chut vo nt ng kim tra ngi dng phi nhp y thng tin v
hin thng bo gm cc thng tin: Tn khch, a ch, Danh sch cc mt hng
mua, Phng thc thanh ton v Hnh thc lin lc.

4.6. iu khin CheckedListBox
iu khin CheckedListBox cho php lu tr v hin th cc mc d liu
theo dng v c mt hp CheckBox u dng.
iu khin CheckedListBox c tip u ng l clb v c cc thuc tnh, s kin, phng
thc tng t nh iu khin ListBox.
Ngoi ra n c thm mt s thuc tnh v s kin khc nh sau:
CheckedItems Thuc tnh ny tr v tp cc phn t c Check.
ItemCheck c kch hot khi ngi dng kch p chut vo hp Combo.

Bi tp 14.
To mt form mi t tn l frmCheckListBox, t ln form hp iu khin
CheckedListBox clbSach v nt lnh btnKetqua.
Vit chng trnh hin th 10 loi sch c chia thnh 2 ct vo trong hp clbSach. Khi
ngi dng nh du vo hp CheckBox ca tng phn t, s xut hin hp thng bo tn
quyn sch tng ng vi phn t , nh hnh minh ha sau:
Bi ging C s lp trnh 2 78



Hnh 33. Giao din bi tp 14
Khi ngi dng kch chn nt Kt qu s xut hin hp thoi thng bo tn tt c cc quyn
sch ngi dng chn.

Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void Form1_Load(object sender, EventArgs e)
{
clbSach.Items.Add("Visual Basic.NET 2005");
clbSach.Items.Add("Visual C#.NET 2005");
clbSach.Items.Add("Lp trnh Oracle");
clbSach.Items.Add("Lp trnh C s d liu");
clbSach.Items.Add("Lp trnh C");
clbSach.Items.Add("Lp trnh Pascal");
clbSach.Items.Add("Phn tch thit k hng i tng");
clbSach.Items.Add("Lp trnh C For Win");
clbSach.Items.Add("Nhp mn X l nh");
clbSach.MultiColumn = true;
clbSach.ColumnWidth = clbSach.Width / 2;
}
Bi ging C s lp trnh 2 79


private void btnKetqua_Click(object sender, EventArgs e)
{
string str="";
// Duyt qua tng phn t chn
foreach (string item in clbSach.CheckedItems)
str = str + item + ", ";
// Xa du phy v du cch tha cui chui str
str = str.Remove(str.Length - 2, 2);
MessageBox.Show("Bn chn sch " + str, "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

private void clbSach_ItemCheck(object sender, ItemCheckEventArgs e)
{
// Da vo thuc tnh NewValue ca i e bit trng thi ca hp Checkbox
if (e.NewValue == CheckState.Checked)
MessageBox.Show("Bn chn sch " + clbSach.Text, "Thng bo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
4.7. iu khin NumericUpDown
iu khin NumericUpDown cho php ngi dng la chn mt gi tr s
trong mt khong gi tr vi mt bc nhy xc nh.
4.7.1. Thuc tnh
Name Tn iu khin NumericUpDown, bt u bi tip u ng nud
Increment Gi tr ca bc nhy.
Maximum Cn trn ca khong gi tr.
Minimum Cn di ca khong gi tr.
Value Gi tr hin ti ca iu khin NumericUpDown.

4.7.2. S kin
ValueChanged c kch hot khi ngi dng thay i gi tr ca iu khin.

Bi tp 15.
Dng iu khin NumericUpDown gii phng trnh bc hai :
ax
2
+ bx + c = 0 (a, b, c c gi tr trong on [-100, 100])
M mt n mi v thit k giao din vi cc iu khin nh sau:
Ba iu khin NumericUpDown c tn nudNhapA, nudNhapB, nudNhapC. Cc thuc
tnh: Maximum = 100, Minimum = -100, Increment = 1.
Bi ging C s lp trnh 2 80


Ba hp Textbox c tn txtKetqua, txtX1, txtX2. Cc thuc tnh: ReadOnly = True,
BackColor =White. Hp kt qu c thuc tnh Multiline = True.
Hai nt lnh btnGiaiPTBH, btnThoat v cc nhn Label

Hnh 34. Giao din bi tp 15
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void btnGiaiPTBH_Click(object sender, EventArgs e)
{
PTBH(Convert.ToInt32(nudNhapA.Value), Convert.ToInt32(nudNhapB.Value),
Convert.ToInt32(nudNhapC.Value));
}

private void PTBH(int a, int b, int c)
{
double delta ,x1,x2;
if ((a == 0) || (b == 0) || (c == 0))
{
txtKetqua.Text = "Khng gii v khng phi phng trnh bc hai ";
btnGiaiPTBH.Enabled = false ;
return;
}
delta = b * b - 4 * a * c;
if (delta < 0)
{
txtKetqua.Text = txtKetqua.Text + "Phng trnh v nghim";
btnGiaiPTBH.Enabled = false;
return;
}
if (delta == 0)
{
x1 = Math.Round ((-b / (2.0 * a)), 2);
txtKetqua.Text = txtKetqua.Text + "Phng trnh c nghim kp";
txtX1.Text = Convert.ToString(x1);
txtX2.Text = Convert.ToString(x1);
Bi ging C s lp trnh 2 81


btnGiaiPTBH.Enabled = false;
return;
}
x1 = Math.Round((-b + Math.Sqrt(delta)) / (2 * a), 2);
x2 = Math.Round((-b - Math.Sqrt(delta)) / (2 * a), 2);
txtKetqua.Text = txtKetqua.Text + "Phng trnh c 2 nghim phn bit";
txtX1.Text = Convert.ToString(x1);
txtX2.Text = Convert.ToString(x2);
btnGiaiPTBH.Enabled = false;
}

private void EmptyText()
{
txtX1.Text = "";
txtX2.Text = "";
}

private void nudNhapA_ValueChanged(object sender, EventArgs e)
{
txtKetqua.Text = "A=" + nudNhapA.Value + System.Environment.NewLine;
txtKetqua.Text = txtKetqua.Text + "B=" + nudNhapB.Value +
System.Environment.NewLine;
txtKetqua.Text = txtKetqua.Text + "C=" + nudNhapC.Value +
System.Environment.NewLine;
btnGiaiPTBH.Enabled = true;
EmptyText();
}

// Thc hin tng t cho nudNhapB_ValueChanged v nudNhapC_ValueChanged
4.8. Thanh cun HScrollBar v VScrollBar
Thanh cun ngang HScrollBar v thanh cun dc VScrollBar cho
php ngi dng la chn mt gi tr s trong mt khong gi tr xc nh vi mt bc
nhy cho trc.
4.8.1. Thuc tnh
Name Tn thanh cun, bt u bi tip u ng hsb v vsb.
Minimum S nguyn xc nh gi tr nh nht cho thanh cun.
Maximum S nguyn xc nh gi tr ln nht cho thanh cun.
Value Cho bit gi tr hin thi ca thanh cun.
LargeChange Ch ra mc thay i ca thuc tnh Value khi ngi dng nhn chut
trn thanh cun.
SmallChange Ch ra mc thay i ca thuc tnh Value khi ngi dng nhn chut
vo cc mi tn trn thanh cun (gi tr mc nh = 1).

4.8.2. S kin
Bi ging C s lp trnh 2 82


ValueChanged c kch hot khi ngi dng thay i gi tr ca thanh cun.
Scroll Xy ra khi ngi dng ko r chut hoc kch chut vo cc mi tn
trn thanh cun.
Bi tp 16.
Dng thanh cun HScrollBar thay i mu nn cho Form.

Hnh 35. Giao din bi tp 16
Vo Microsoft Visual Studio 2010 to mt d n mi, t tn form l frmMaunen v t vo
form cc iu khin sau:
Ba iu khin HScrollBar c tn hsbRed, hsbGreen, hsbBlue. Cc thuc tnh:
Maximum = 255, Minimum = 0, LargeChange = 10, SmallChange = 1.
Ba nhn Label t bn phi cc thanh cun c tn lblRed, lblGreen, lblBlue lu
gi tr hin thi ca cc thanh cun tng ng.
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void hsbRed_ValueChanged(object sender, EventArgs e)
{
this.BackColor = Color.FromArgb(hsbRed.Value, hsbGreen.Value, hsbBlue.Value);
lblRed.Text = hsbRed.Value.ToString ();
}

private void hsbGreen_ValueChanged(object sender, EventArgs e)
{
this.BackColor = Color.FromArgb(hsbRed.Value, hsbGreen.Value, hsbBlue.Value);
lblGreen.Text = hsbGreen.Value.ToString();
}

private void hsbBlue_ValueChanged(object sender, EventArgs e)
{
Bi ging C s lp trnh 2 83


this.BackColor = Color.FromArgb(hsbRed.Value, hsbGreen.Value, hsbBlue.Value);
lblBlue.Text = hsbBlue.Value.ToString();
}
Ch : Color.FromArgb(Red, Green, Blue) cho php to mt mu bng cch kt hp cc gi
tr ca 3 mu c bn Red, Green, Blue. Ba mu ny nhn cc gi tr t 0 n 255.
4.9. iu khin Timer
iu khin nh thi gian Timer cho php thc thi li mt hnh ng sau mt
khong thi gian xc nh.
Khi ta a iu khin Timer vo Form n khng xut hin trn Form m xut hin nh mt
biu tng trn mt khay t cui ca s thit k. Khi chy chng trnh iu khin
Timer cng khng xut hin.
4.9.1. Thuc tnh
Name Tn iu khin Timer, bt u bi tip u ng tmr
Interval = n l chu k thc hin s kin Tick ca iu khin Timer.
n l s nguyn, c tnh bng mili giy v c gi tr >0
Enabled Enabled = True: cho php iu khin Timer hot ng
Enabled = False: khng cho php iu khin Timer hot ng.

4.9.2. S kin
Tick S kin ny c kch hot sau mi chu k Interval.

4.9.3. Phng thc
Start: kch hot iu khin Timer, phng thc ny tng t thuc tnh Enabled = true. C
php:
TimerName.Start();
Stop: dng iu khin Timer, phng thc ny tng ng vi thuc tnh Enabled = false.
C php:
TimerName.Stop();
Bi tp 17.
Vit chng trnh m t s chuyn ng ca mt trng gm 8 hnh nh t trong th mc
D:\Icons\Moon nh sau:
Bi ging C s lp trnh 2 84



Hnh 36. Giao din bi tp 17
Vo Microsoft Visual Studio 2010 to mt d n mi v thit lp cc thuc tnh ca cc iu
khin nh sau:
iu khin Name Text Image Visible
Form1 frmMoon Trang chuyen dong
PictureBox1 pic1 Moon01.bmp False
PictureBox2 pic2 Moon02.bmp False
PictureBox3 pic3 Moon03.bmp False
PictureBox4 pic4 Moon04.bmp False
PictureBox5 pic5 Moon05.bmp False
PictureBox6 pic6 Moon06.bmp False
PictureBox7 pic7 Moon07.bmp False
PictureBox8 pic8 Moon08.bmp False
PictureBox9 pic True
Button1 btnStart Start True
Button2 btnExit Exit True
Timer tmrTimer Enabled = True v Interval = 250
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
public partial class frmMoon : Form
{
int Coquay, Curmoon;

public frmMoon()
{
InitializeComponent();
}
private void frmMoon_Load(object sender, EventArgs e)
Bi ging C s lp trnh 2 85


{
Coquay = 0 ; // Khng cho php quay
Curmoon = 1 ; // Ch s nh hin hnh
}
private void btnStart_Click(object sender, EventArgs e)
{
if (Coquay ==0)
{
Coquay = 1;
btnStart.Text = "Stop";
}
else
{
Coquay = 0;
btnStart.Text = "Start";
}
}
private void Hienthi (int index)
{
switch (index)
{
case 1:
pic.Image = pic1.Image;
break;
case 2:
pic.Image = pic2.Image;
break;
case 3:
pic.Image = pic3.Image;
break;
case 4:
pic.Image = pic4.Image;
break;
case 5:
pic.Image = pic5.Image;
break;
case 6:
pic.Image = pic6.Image;
break;
case 7:
pic.Image = pic7.Image;
break;
case 8:
pic.Image = pic8.Image;
break;
}
}
private void tmrTimer_Tick(object sender, EventArgs e)
{
if (Coquay == 1 )
Hienthi(Curmoon);
Curmoon = Curmoon + 1;
if (Curmoon == 9)
Curmoon = 1;
}
}
Bi ging C s lp trnh 2 86


Bi tp 18.
Vit chng trnh to dng ch Cho mng bn chuyn ng t tri qua phi mn hnh,
khi gp mp mn hnh th chuyn ng ngc li t phi qua tri. C lp li nh vy cho
n khi kt thc chng trnh.

Hnh 37. Giao din bi tp 18
Vo Microsoft Visual Studio 2010 to mt d n mi v thit lp cc thuc tnh ca cc iu
khin nh sau:
iu khin Name Text
Form1 frmMove Dong chu chuyen dong
Label1 lblMove Cho mng bn
Timer tmrTimer Enabled = True v Interval = 200
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
public partial class frmMove : Form
{
bool Kt; //Kt=true chuyen dong sang phai, Kt=false chuyen dong sang trai

public frmMove()
{
InitializeComponent();
}

private void frmMove_Load(object sender, EventArgs e)
{
Kt = true;
}

private void tmrTimer_Tick(object sender, EventArgs e)
{
if (Kt)
{
if (lblMove.Left + lblMove.Width < this.Width)
lblMove.Left = lblMove.Left + 13;
else
Kt = false;
}
Bi ging C s lp trnh 2 87


if (!Kt)
{
if (lblMove.Left > 0 )
lblMove.Left = lblMove.Left - 13;
else
Kt = true;
}
}
}
4.10. iu khin RichTextBox
iu khin RichTextBox cho php to v hin th cc tp vn bn c phn m
rng .rtf. RichTextBox khc vi TextBox ch n cho php hin th mu sc, loi Font, c
ch khc nhau cho tng on khc nhau trong vn bn.
to mt tp c phn m rng .rtf ta c th s dng trnh son tho Word v lu tp
Save As theo nh dng Rich TextFormat (*.rtf)
iu khin RichTextBox c tip u ng l rtb v c 2 phng thc c bn sau:
LoadFile: np ni dung mt tp .rtf vo RichTextBox.
V d np ni dung tp Bai1.rtf trong D vo hp RichTextBox rtbBai1:
rtbBai1.LoadFile("D:\\Bai1.rtf", RichTextBoxStreamType.RichText);
SaveFile: lu ni dung trong hp RichTextBox vo mt tp c phn m rng .rtf.
V d lu ni dung ca hp RichTextBox rtbBai1 vo tp Bai2.rtf trong D: (nu tp
Bai2.rtf cha tn ti th s c to mi)
rtbBai1.SaveFile("D:\\Bai2.rtf", RichTextBoxStreamType.RichText);







Bi ging C s lp trnh 2 88


CHNG 5.
CC HP THOI THNG DNG
Chng ta thy trong hu ht cc ng dng ca Windows u c cc hp thoi Open m
tp tin, Save lu cc tp tin hoc cc hp thoi Color chn mu, Font chn phng
ch... cc hp thoi ny gi l cc hp thoi thng dng - Common Dialog.
s dng cc hp thoi thng dng ta dng cc lp i tng .NET trong th vin
System.IO bao gm 5 lp tng ng vi 5 hp hi thoi c bn nh sau:
Hp thoi Lp i tng
M tp tin Open File OpenFileDialog()
Lu tp tin Save File SaveFileDialog()
Chn mu Color ColorDialog()
Chn phng Font FontDialog()
In n Print PrintDialog()

1. Hp hi thoi Open File
Cc thuc tnh v phng thc quan trng ca hp hi thoi OpenFile:
Thuc tnh Chc nng
FileName Cung cp tn v ng dn ca tp tin chn.
Filter Xc nh danh sch cc b lc tp tin m hp hi thoi s hin th.V
d: Text|*.txt|Icons|*.ico|All files|*.* (khng c cha du cch)
FilterIndex Ch ra b lc tp tin mc nh, gi s c 3 b lc (*.com), (*.exe) v
(*.ico) nu FilterIndex = 2 th hp thoi s hin th sn b lc (*.exe)
InitialDirectory Xc nh th mc mc nh cho hp hi thoi khi va c gi.
Multiselect Multiselect = True: cho php ngi dng chn ng thi nhiu file.
FileNames Cung cp tn v ng dn ca cc tp tin chn.
Title Xc nh tiu ca hp hi thoi.
OpenFile M ni dung File c chn (ReadOnly).
Bi tp 19.
Vit chng trnh cho php tm kim cc hnh nh hin th ln form.
Bi ging C s lp trnh 2 89



Hnh 38. Giao din bi tp 19
Vo Microsoft Visual Studio 2010 to d n mi t tn l OpenDialog lu vo th mc
D:\Baigiang\C#HVNH\Baitap v thit lp thuc tnh ca cc iu khin nh sau:
iu khin Name Text
Form1 frmPicture Hien thi hinh anh
PictureBox picAnh
Button1 btnOpen Open

Chy chng trnh, kch chn nt lnh Open s xut hin hp thoi sau:

Chn mt nh bt k mun hin th sau kch chn Open, nh s c hin th ln iu
khin PictureBox trn form.
Bi ging C s lp trnh 2 90


Trong trng hp ngi dng chn Cancel s xut hin thng bo: You clicked Cancel!
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog dlgOpen = new OpenFileDialog();
dlgOpen.Filter = "Bitmap(*.bmp)|*.bmp|Gif(*.gif) |*.gif|All files(*.*)|*.*";
dlgOpen.InitialDirectory = "D:\\Baigiang";
dlgOpen.FilterIndex = 2;
dlgOpen.Title = "Chon hinh anh de hien thi";
if (dlgOpen.ShowDialog() == DialogResult.OK)
picAnh.Image = Image.FromFile(dlgOpen.FileName);
else
MessageBox.Show("You clicked Cancel" , "Open Dialog", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
2. Hp thoi SaveFile v lung FileStream
2.1. Hp thoi SaveFile
Cc thuc tnh v phng thc ca hp hi thoi SaveFile:
Thuc tnh Chc nng
FileName Cung cp tn v ng dn ca tp tin chn.
Filter Xc nh danh sch cc b lc tp tin m hp hi thoi s hin th, v
d: Text|*.txt|Icons|*.ico|All files|*.*
FilterIndex Ch ra b lc tp tin mc nh, gi s c 3 b lc (*.com), (*.exe) v
(*.ico) nu FilterIndex = 2 th hp thoi s hin th sn b lc (*.exe)
AddExtension = True t ng thm phn m rng hin hnh vo tn tp m ngi
dng chn nu ngi dng khng ch r phn m rng ca tn tp.
DefaultExt Cung cp phn m rng mc nh cho tn tp, nu ngi dng khng
ch r phn m rng ca tn tp, v d: .doc
InitialDirectory Xc nh th mc mc nh cho hp hi thoi khi va c gi.
Title Xc nh tiu ca hp hi thoi.

2.2. Lung FileStream
Vi mt file d liu c kiu bt k u c coi l mt lung d liu, ta c th m mt
lung d liu c thng tin t file hoc ghi thng tin vo file sau ng lung li.
Lung ghi d liu - StreamWriter
M lung ghi file:
Bi ging C s lp trnh 2 91


StreamWriter Tenluong = new StreamWriter(Tenfile);
Ghi tng dng d liu vo file:
Tenluong.WriteLine(Noidung);
Ghi tt c d liu vo file:
Tenluong.Write(Noidung);
Lung c d liu - StreamReader
M lung c file:
StreamReader Tenluong = new StreamReader(Tenfile);
c tng dng d liu ca file: ta dng vng lp vi s ln lp khng xc nh c
tng dng d liu, nu c thnh cng th tr v chui cha d liu c c, nu
n cui file th tr v Nothing.
Noidung = Tenluong.ReadLine();
c tt c d liu ca file lu vo mt bin:
Noidung = Tenluong.ReadToEnd();
ng lung:
Tenluong.Close();
Ch : StreamWriter v StreamReader nm trong lp System.IO
Bi tp 20.
Vit chng trnh cho php lu ni dung ca hp Textbox vo mt File trn my tnh, vi
giao din v yu cu nh sau:

Hnh 39. Giao din bi tp 20
Bi ging C s lp trnh 2 92


Kch chn nt Save xut hin hp hi thoi Chon file de luu vi ng dn mc nh l
D:\Baigiang. G tn tp cn lu d liu vo FilName, v d: Day_mua_thu_toi.doc v
chn Save. Kt qu trong th mc D:\Baigiang xut hin tp Day_mua_thu_toi.doc cha ni
dung ca hp Textbox.
Vo Microsoft Visual Studio 2010 to d n mi t tn l SaveDialog lu vo th mc
D:\Baigiang\C#HVNH\Baitap v thit lp thuc tnh ca cc iu khin nh sau:
iu khin Name Text
Form1 frmSave Luu thong tin vao File
TextBox (MultiLine = True) txtSave
Button1 btnSave Save
Vit Code: m ca s son tho Code khai bo khng gian lp IO using System.IO; v vit
on m lnh nh sau:
private void btnSave_Click(object sender, EventArgs e)
{
SaveFileDialog dlgSave = new SaveFileDialog();
dlgSave.Filter = "Text file(*.txt)|*.txt |Word Document(*.doc) |*.doc|
All files(*.*)|*.*";
dlgSave.InitialDirectory = "D:\\Baigiang";
dlgSave.FilterIndex = 2;
dlgSave.Title = "Chon file de luu";
dlgSave.AddExtension = true;
dlgSave.DefaultExt = ".doc";
if (dlgSave.ShowDialog() == DialogResult.OK)
{
StreamWriter File;
File = new StreamWriter(dlgSave.FileName);
try
{
File.Write(txtSave.Text);
}
catch(System.Exception)
{
MessageBox.Show("Li ghi file");
}
File.Close();
}
}
3. Hp thoi Color
Hp thoi Color c tc dng hin th bng mu hin hnh cho php ngi s dng chn mt
mu bt k t mu ch, mu nn
Cc thuc tnh ca hp thoi Color:
Bi ging C s lp trnh 2 93


Thuc tnh Chc nng
Color Tr v mu c chn trong hp thoi Color.
FullOpen Hin th ton b hp thoi Color.
SolidColorOnly Khng hin th phn Define Custom Colors.
Bi tp 21.
Vit chng trnh cho php la chn mu nn cho form theo giao din v yu cu sau:

Hnh 40. Giao din bi tp 21
Kch chn nt lnh Mu nn, xut hin hp thoi Color:

Chn mt mu bt k ri bm OK, khi mu c chn s c gn lm mu nn cho
form.
Vo Microsoft Visual Studio 2010 to d n mi c tn l ColorDialog lu vo th mc
D:\Baigiang\C#HVNH\Baitap v thit lp thuc tnh ca cc iu khin nh sau:
Bi ging C s lp trnh 2 94


iu khin Name Text
Form1 frmColor Hop thoai mau
Button1 btnColor Mu nn
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void btnColor_Click(object sender, EventArgs e)
{
ColorDialog dlgColor = new ColorDialog();
dlgColor.FullOpen = true;
if (dlgColor.ShowDialog() == DialogResult.OK)
this.BackColor = dlgColor.Color;
}
4. Hp thoi Font
C chc nng hin th hp hi thoi Font cho php ngi s dng chn font ch, kiu ch,
c ch
Cc thuc tnh quan trng ca hp thoi Font:
Thuc tnh Chc nng
Font Tr v kiu Font ch c chn trong hp thoi Font.
ShowColor = True: cho php hin th hp thoi Color.
Color Tr v mu c chn trong hp thoi Font.
Bi tp 22.
Vit chng trnh cho php la chn cc kiu font ch khc nhau cho hp Textbox theo giao
din v yu cu nh sau:

Hnh 41. Giao din bi tp 22
Kch chn nt lnh Chn Font, xut hin hp thoi Font:
Bi ging C s lp trnh 2 95



Chn gi tr cho cc thuc tnh ri bm OK, kt qu s c hin th trong hp Textbox.
Vo Microsoft Visual Studio 2010 to d n mi t tn l FontDialog lu vo th mc
D:\Baigiang\C#HVNH\Baitap v thit lp thuc tnh ca cc iu khin nh sau:
iu khin Name Text
Form1 frmFont Hop thoai chon Font
TextBox1 txtFont H Ni
Button1 btnFont Chn Font
Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void btnSave_Click(object sender, EventArgs e)
{
FontDialog dlgFont = new FontDialog();
dlgFont.ShowColor = true;
if (dlgFont.ShowDialog() == DialogResult.OK)
{
txtFont.Font = dlgFont.Font;
txtFont.ForeColor = dlgFont.Color;
}
}
Bi tp 23.
Vit chng trnh cho php c ni dung mt tp .rtf trong my lu vo hp RichTextBox
theo giao din v yu cu sau:
Bi ging C s lp trnh 2 96



Hnh 42. Giao din bi tp 23
Kch chn nt Open xut hin hp thoi OpenFile, chn tp Main dans la main.rtf th
mc D:\Baigiang\C#HVNH\Baitap\Music\Nhac_Loi lu vo hp RichTextBox.
Kch chn nt Font xut hin hp thoi Font, cho php chn mu ch v kiu ch cho hp
RichTextbox.
Kch chn nt Save xut hin hp thoi SaveFile, lu ni dung hp RichTextBox vo tp
Main dans la main.rtf









Bi ging C s lp trnh 2 97


CHNG 6.
MENU V N NHIU BIU MU
1. Menu - MenuStrip
iu khin MenuStrip gip ngi lp trnh c th thit k thanh menu trn Form.
Khi a iu khin MenuStrip vo Form, mt thanh menu ngang s xut hin trn dng u
tin ca Form vi cc cha dng ch Type Here cho php to cc mc menu mi.

Hnh 43. Giao din iu khin MenuStrip
1.1. Thuc tnh
Name Mi mc menu u phi c tn, menu c tip u ng l mnu
Enabled = False: mc menu s b xm, ta khng th chn mc menu .
Image Thit lp hnh nh biu tng cho mi mc menu.
ShortcutKeys Cho php to phm tt m cc mc menu.

Text To tiu ca cc mc menu. Nu t k t & trc mt ch ci trong
thuc tnh Text th khi chy chng trnh ngi dng c th bm t hp
phm Alt + Ch ci kch hot menu. V d : &File s cho php bm
Alt+F kch hot menu File.
Bi ging C s lp trnh 2 98


Nu Text c xc lp l mt du tr (-) C# s hin th mt ng thng
ngn cch gia cc khon mc menu.
Visible = Flase: cc mc menu s khng c hin th.
ToolTipText To dng mch nc cho cc mc menu.
1.2. S kin
Click c kch hot khi ngi dng kch chut chn mt mc menu.
Ch :
Chn mc menu: chn thm mt mc menu vo trong danh sch cc mc menu
c, ta kch chut phi ti mc menu, chn I nsert/MenuI tem. Kt qu mt mc menu
mi c chn vo trn mc menu ang c chn.
Xa mc menu: kch chut phi ti mc menu mun xa, chn Delete.
Bi tp 24.
To mt menu vi giao din nh sau:

Hnh 44. Giao din bi tp 24
Khi ngi dng kch chut ti mc menu no th xut hin hp hi thoi thng bo tn mc
menu .
Vo Microsoft Visual Studio 2010 to d n mi t tn l Menu v thit lp thuc tnh ca
cc iu khin nh sau:
iu khin Name Text Image ShortcutKeys ToolTipText
Form1 frmMenu Thiet ke menu
MenuStrip1
Bi ging C s lp trnh 2 99


mnuFile &File
mnuNew &New New.ico Ctrl + N M mi
mnuOpen &Open Open.ico Ctrl + O M tp c
mnuSave &Save Save.ico Ctrl + S Lu tp
mnu1 -
mnuExit E&xit

Vit Code: m ca s son tho Code v vit cc on m lnh nh sau:
private void mnuNew_Click(object sender, EventArgs e)
{
MessageBox.Show("Bn chn mc menu New", "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

private void mnuOpen_Click(object sender, EventArgs e)
{
MessageBox.Show("Bn chn mc menu Open", "Thng bo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
// Cc mc menu khc lm tng t
2. Popup menu - ContextMenuStrip
iu khin ContextMenuStrip cho php to menu ng cnh, menu ny ch
xut hin khi ngi dng kch chut phi ti iu khin gn menu. Ta gn menu ng cnh
cho mt iu khin thng qua thuc tnh Context MenuStrip ca iu khin .
iu khin ContextMenuStrip c tip u ng l cmnu v c cc thuc tnh v phng thc
tng t nh iu khin MenuStrip.
Bi tp 25.
Vit chng trnh to menu Popup c giao din v cc chc nng nh sau:
C Ngi dng kch chut phi ti v tr bt k trn Form, xut hin menu gm 2 mc la
chn: Open v Save. Kch chn mc Open s xut hin hp thoi Open cho php chn
mt tp vn bn bt k c ui .rtf v hin th ni dung ca tp vn bn vo hp
RichTextBox Vn bn 1.
C Bi en cc dng vn bn trong hp Vn bn 1 v kch chut phi ti v tr bt k trong
hp Vn bn 1, xut hin menu gm 4 mc la chn: Copy, Cut, Paste v Delete. Kch
chn mc Copy lu cc dng vn bn c bi en vo b nh m ClipBoard.
Bi ging C s lp trnh 2 100


C Kch chut phi ti v tr bt k trong hp Vn bn 2 chn Paste gn ni dung dng
vn bn trong ClipBoard vo hp Vn bn 2.

Hnh 45. Giao din bi tp 25
Vo Microsoft Visual Studio 2010 to d n mi c tn l MenuPopup v thit lp gi tr
cho cc thuc tnh ca cc iu khin nh sau:
iu khin Name Text Image Context
MenuStrip
Shortcut
Keys
Form1 frmMenuPopup Thiet ke
menu popup
cmnuFile
ContextMenu
Strip1
cmnuFile
cmnuOpen Open Open.ico Ctrl + O
cmnuSave Save Save.ico Ctrl + S
ContextMenu
Strip2
cmnuEdit
cmnuCopy Copy Ctrl + C
cmnuCut Cut Ctrl + X
cmnuPaste Paste Ctrl + V
cmnuDelete Delete Delete.ico
Label1 Vn bn 1
Label2 Vn bn 2
RichTextBox1 rtbVanban1 cmnuEdit
RichTextBox2 rtbVanban2 cmnuEdit
Bi ging C s lp trnh 2 101


Vit Code: m ca s son tho Code v vit cc on m lnh cho 2 mc menu cmnuCopy
v cmnuPaste nh sau:
private void cmnuCopy_Click(object sender, EventArgs e)
{
Clipboard.SetText(rtbVanban1.SelectedText);
}

private void cmunPaste_Click(object sender, EventArgs e)
{
//rtbVanban2.Text = Clipboard.GetText(); // cch 1
//rtbVanban2.Text = rtbVanban2.Text.Insert(rtbVanban2.SelectionStart,
Clipboard.GetText()); // Cch 2
rtbVanban2.SelectedText = Clipboard.GetText(); // cch 3
}

private void mnuCut_Click(object sender, EventArgs e)
{
Clipboard.SetText(rtbVanban1.SelectedText);
rtbVanban1.SelectedText = String.Empty;
}

// Cc mc menu khc sinh vin t lm
3. n nhiu biu mu
Khi ng dng tr ln phc tp, chng trnh khng th ch cha trong mt biu mu m phi
s dng nhiu biu mu b sung tnh linh hot v nng lc cho ng dng.
3.1. B sung biu mu
b sung thm cc biu mu - Form cho ng dng ang thit k, ta c th thc hin mt
trong cc cch sau :
Chn menu Project/Add Windows Form
Hoc chn menu Project/Add New Item
Hoc bm phm tt Ctrl+Shift+A
Kt qu xut hin ca s Add New Item. C# cung cp vi biu mu c xy dng sn c
th b sung vo d n, v d: biu mu c bn Windows Form, hoc About Box - dng
t logo ca cng ty hoc k hiu bn quyn...
Chn loi biu mu cn b sung v d Windows Form, t tn cho form ti Name ri chn
nt Add, khi mt biu mu mi s c chn vo ng dng.
Bi ging C s lp trnh 2 102



Hnh 46. Ca s Add New Item
Ngoi ra C# cn cho php b sung cc form c xy dng trong cc d n khc bng
cch chn menu Project/ Add Existing Item hoc bm phm tt Shift+Alt+A ri chn Form
cn b sung. Vic chn Form c sn to iu kin cho vic phn nh ng dng cho nhiu
ngi, mi ngi lm mt phn sau ghp li vi nhau to thnh ng dng hon chnh.
Bi tp 26.
Vo Microsoft Visual Studio 2010 to d n mi c tn l English lu vo th mc
D:\Baigiang\C#HVNH\Baitap.
i tn cho Form1 thnh frmMain v tiu l Bai tap tieng Anh.
B sung thm 2 Windows Form mi c tn l frmDientu1 v frmBiendoi1 vi tiu
ln lt l Bai tap Dien tu 1 v Bai tap Bien doi cau.
Lc ny d n c 03 Form l: frmMain, frmDientu1 v frmBiendoi1.
3.2. Biu mu khi ng
Khi chy mt ng dng, biu mu c thc hin u tin gi l biu mu khi ng -
Startup.
Bi ging C s lp trnh 2 103


Biu mu Startup mc nh l biu mu u tin c xy dng trong ng dng khi thit k
giao din, v d biu mu frmMain trong ng dng English.
Ta c th thay i mc nh ny c th chn mt biu mu bt k lm biu mu khi
ng khi chy chng trnh. V d mun form frmDientu1 c thc hin u tin, ta thc
hin nh sau:
Kch chut phi ti tp Program.cs trong ca s Solution Explorer, chn Open hoc
View Code.
Trong hm Main ca ca s code sa dng Application.Run(new frmMain()); thnh
Application.Run(new frmDientu1());
3.3. Gi biu mu
gi mt biu mu ta phi khai bo mt bin c kiu ca biu mu cn gi v thc hin
gi thng qua 2 phng thc tng ng vi 2 cch sau :
Cch 1: Dng phng thc Show()
V d: frmDientu1 frm = new frmDientu1();
frm.Show();
Phng thc ny ti biu mu vo b nh sau hin th biu mu, ng thi vn cho php
ngi s dng c th tng tc c vi cc biu mu nm pha di.
Cch 2: Dng phng thc ShowDialog()
V d: frmDientu1 frm = new frmDientu1();
frm.ShowDialog();
Tng t nh cch 1 nhng ngi s dng ch c th tng tc c vi biu mu hin
hnh m khng th tng tc vi cc biu mu nm pha di n.
3.4. ng biu mu
ng mt biu mu ta c th thc hin theo 2 cch sau:
Cch 1: c php this.Hide();
Cch 2: c php this.Close();
3.5. Xo biu mu
Trong ca s Solution Explorer, kch chut phi ti Form cn xa, chn Delete. Kt qu
Form c chn s b xa ra khi d n.
Bi ging C s lp trnh 2 104


Bi tp 27.
Tip theo bi tp 26, to MenuStrip cho Form frmMain theo giao din sau:

Hnh 47. Giao din bi tp 27
t tn cho mc menu Dien tu l mnuDientu, tiu l &Dien tu. t tn cho menu con 1
ca Dien tu l mnuDientu1, tiu l Bai dien tu &1
Bi tp 28.
Tip theo bi tp 27, to form frmDientu1 vi giao din v cc chc nng nh sau:

Hnh 48. Giao din bi tp 28
Bi ging C s lp trnh 2 105


Khi gi Form frmDientu1 xut hin ni dung bi tp cn in t trong hp Textbox.
Ngi s dng vit p n cho cc cu vo cc Textbox t 1 n 10.
Khi chn OK chng trnh kim tra kt qu, cu no ng th i mu nn Textbox
tng ng vi cu tr li sang mu xanh, cu no sai th i Textbox c nn mu
hng. Hin th im t c cho ngi dng (mi cu tr li ng c 1 im).
Khi chn nt Dapan th form s hin th p n nh giao din sau:

Bm nt Lm li, xut hin ni dung bi v xo rng cc p n c ngi dng
c th tr li li cc cu hi.
Bm nt Exit ng form frm Dientu1 tr v form chnh frmMain.
Bi tp 29.
Tip theo bi tp 28, to form frmBiendoi1 c giao din v cc chc nng nh sau:
Khi gi Form frmBiendoi1 xut hin ni dung cc cu cn vit li trong cc nhn
Label vi th t t 1 n 10.
Ngi dng vit cu mi c ngha tng t vi cu cho trong cc nhn Label
vo cc hp Textbox tng ng pha di bt u bi cc t hng dn cho trc.
Bi ging C s lp trnh 2 106



Hnh 49. Giao din bi tp 29
Cc nt OK, p n, Lm li v Exit c chc nng tng t nh trong form frmDientu1.
Nt Help hin hp thng bo cha cc gi cho cc cu tr li nh sau:

Bi ging C s lp trnh 2 107

También podría gustarte