8/13/2019 Bi ging LTQL_2012
1/189
Bi ging Lp trnh qun l 2012
1
MC LCChng 1: LM QUEN VI VISUAL BASIC.NET.................. 5
1.1. Mi trng pht trin Visual Studio.net..................................................................... 51.1.1. Khi ng visual studio.NET............................................................................... 51.1.2. M mt d n ca visual basic ............................................................................ 5
1.1.3. D n (Project) v gii php (Solutions)............................................................ 61.1.4. Cc cng c ca VS.NET..................................................................................... 61.1.5. B thit k Windows Forms Designer.................................................................. 7
1.2. Chy mt chng trnh Visual Basic .......................................................................... 81.3. Thot khi VISUAL STUDIO.NET ........................................................................... 81.4. Vit mt chng trnh Visual Basic.NET u tay...................................................... 8
1.4.1. Tm hiu chng trnh......................................................................................... 81.4.2. Xy dng giao dinv thuc tnh........................................................................ 91.4.3. Vit m cho chng trnh.................................................................................... 91.4.4. Thc thi chng trnh ........................................................................................ 13Chng 2: LM VIC VI CC IU KHIN TRN
TOOLBOX .................................................................................... 152.1. Xy dng chng trnh HELLOWORLD................................................................ 15
2.1.1. Tm hiu chng trnh....................................................................................... 152.1.2. Thit k chng trnh ......................................................................................... 15
2.2. S dng iu khin DATETIMEPICKER ................................................................ 172.2.1. Chng trnh Birthday....................................................................................... 172.2.2. Lm quen vi cc thuc tnh khc ca DateTimePicker................................... 19
2.3. Lm vic vi cc iu khin nhp liu..................................................................... 192.3.1. Tm hiu CheckBox ............................................................................................ 192.3.2. Mt s iu khin khc...................................................................................... 212.4. S dng iu khin LINKLABEL ............................................................................ 272.4.1. S dng.............................................................................................................. 272.4.2. Chng trnh WebLink...................................................................................... 27
2.5. Ci t iu khin ACTIVEX ................................................................................... 29Chng 3: LM VIC VI MENU V HP THOI............ 32
3.1. S dng iu khin MainMenu................................................................................. 323.2. Chng trnh MyMenu ............................................................................................. 323.2. S dng thnh phn iu khin hp thoi chun...................................................... 34
3.2.1. Thm vo hp thoi chun ................................................................................. 353.2.2. Thm mc File vo menu chng trnh............................................................. 363.2.3. Vit m chng trnh ......................................................................................... 363.2.4. Gn phm tt cho MENU................................................................................... 383.2.5. Chy chng trnh hon thin ........................................................................... 39
Chng 4: BIN V TON T TRONG VISUAL BASIC.NET......................................................................................................... 40
4.1. S dng bin trong chng trnh .............................................................................. 404.1.1. Cch khai bo bin ............................................................................................ 404.1.2. S dng bin trong chng trnh ....................................................................... 40
4.2. Cc kiu d liu c bn............................................................................................. 434.2.1. Cc kiu d liu c bn ..................................................................................... 434.2.2. Kiu d liu t nh ngha ................................................................................. 47
4.3. Hng s ..................................................................................................................... 48
8/13/2019 Bi ging LTQL_2012
2/189
Bi ging Lp trnh qun l 2012
2
4.4. Lm vic vi ton t trong VISUAL BASIC.NET.................................................. 484.4.1. Cc ton t c s: +, -, *, /................................................................................ 484.4.2. S dng cc ton t: , Mod, ^, & ...................................................................... 494.4.3. Th t u tin ca ton t................................................................................. 51
4.5. Lm vic vi cc phng thc trong th vin .NET................................................ 51Chng 5: CC CU TRC IU KHIN............................. 54
5.1. S dng cc cu trc ra quyt nh ........................................................................... 545.1.1. Cu trc r nhnh IfThen ............................................................................... 545.1.2. Cu trc la chn Select Case ........................................................................... 56
5.2. S dng cc cu trc lp ........................................................................................... 585.2.1. Vng lp ForNext........................................................................................... 585.2.2. Vng lp DO LOOP........................................................................................... 59
5.3. S dng b nh thi TIMER................................................................................... 60Chng 6: G LI V BY LI TRONG VB.NET............... 63
6.1. Tm kim v hiu chnh li ....................................................................................... 636.1.1. Cc loi li ......................................................................................................... 636.1.2. D li tng dng lnh s dng ch ngt (BREAK MODE)....................... 636.1.3. Theo di cc bin bng ca s WATCH............................................................ 666.1.4. S dng ca s COMMAND.............................................................................. 67
6.2. By li ....................................................................................................................... 676.2.1. X l li bng c php TryCatch................................................................... 676.2.2. Ci t TryCatch phc tp hn ...................................................................... 706.2.3. So snh c ch x l li vi cc k thut phng v li...................................... 756.2.4. S dng pht biu thot Exit Try ....................................................................... 75
Chng 7: S DNG MODULE, TH TC V HM........... 777.1. MODULE v bin Public trong chng trnh.......................................................... 77
7.1.1 To mt MODULE chun ................................................................................... 777.1.2. Lm vic vi cc bin Public ............................................................................. 79
7.2. Th tc v Hm ......................................................................................................... 817.2.1. Hm (FUNCTION) ............................................................................................ 817.2.2. Th tc SUB ....................................................................................................... 847.2.3. Truyn i s theo tham tr v tham bin.......................................................... 85
Chng 8: MNG V TP HP............................................... 878.1. Mng ......................................................................................................................... 87
8.1.1. Khai bo mng c nh ...................................................................................... 878.1.2. Lm vic vi cc phn t trong mng............................................................... 878.1.3. V d ................................................................................................................... 888.1.4. Mng ng......................................................................................................... 89
8.2. Lm vic vi tp hp i tng Collection.............................................................. 908.2.1. Tham chiu n i tng trong tp hp.......................................................... 908.2.2. S dng vng lp For EachNext.................................................................... 908.2.3. T to tp hp ca ngi dng......................................................................... 93
Chng 9: X L FILE TEXT V CHUI............................. 969.1. X l file Text ........................................................................................................... 96
9.1.1. Cc hm x l file Text...................................................................................... 969.1.2. M file Text c ni dung............................................................................. 969.1.3. To mt file text mi .......................................................................................... 99
9.2. X l chui ............................................................................................................. 101
8/13/2019 Bi ging LTQL_2012
3/189
Bi ging Lp trnh qun l 2012
3
9.2.1. Cc hm x l chui........................................................................................ 1019.2.2. Cc hm x l k t ASCII............................................................................... 1029.2.3. Chng trnh v d ........................................................................................... 102
Chng 10: IU KHIN NG DNG MICROSOFT V
QUN L IN N........................................................................ 116
10.1. Lp trnh iu khin cc ng dng....................................................................... 11610.1.1. Cng c Visual Studio Object Browser......................................................... 11610.1.2. T ng ha bng Atomation EXCEL........................................................... 11810.1.3. Dng Process khi ng v dng mt chng trnh Windows................. 122
10.2. Qun l my in ...................................................................................................... 12310.2.1. S dng lp Printdocument........................................................................... 12310.2.2. In vn bn t i tng TextBox................................................................... 12610.2.3. In file vn bn nhiu trang............................................................................. 12910.2.4. S dng hp thoi PrintPreviewDialog v PageSetupDialog....................... 137Chng 11: PHN PHI V NG GI NG DNG
VISUAL BASIC.NET ................................................................. 14211.1. Cc cch ng gi v trin khai ng dng ............................................................ 14211.2. To d n Deployment.......................................................................................... 14311.3. Ty bin cc la chn ng gi ............................................................................ 146
11.3.1. Cu hnh cc thit lp .................................................................................... 14611.3.2. To shortcut cho ng dng ci t................................................................ 14811.3.3. Thit lp tn cng ty v phin bn chng trnh........................................... 14811.3.4. t cc thuc tnh cho gi ng dng............................................................. 150
11.4. Bin dch v ng gi d n kim tra vic ci t ............................................. 15011.4.1. Chy chng trnh ci t Setup................................................................... 15111.4.2. Chy chng trnh LuckySeven sau khi ci t............................................. 15311.5. Tm hiu cc file Setup v g chng trnh .......................................................... 15411.5.1. Kim tra file ci t....................................................................................... 15411.5.2. Tho g chng trnh .................................................................................... 154
Chng 12: QUN L WINDOWS FORM............................ 15612.1. Lm vic vi cc d n c nhiu form.................................................................. 15612.2. nh v form trn mn hnh Desktop .................................................................... 159
12.2.1. S dng thuc tnh StartPosition ................................................................... 15912.2.2. S dng thuc tnh DestopBounds................................................................. 15912.2.3. Phng to, thu nh v khi phc li ca s chng trnh............................... 160
12.3. Thm vo cc iu khin lc form ang chy...................................................... 16012.4. Sp xp cc iu khin trn form .......................................................................... 16212.5. Ch nh i tng khi ng chng trnh......................................................... 16412.5.1. Thay i form khi ng ................................................................................... 164
12.5.2. Thc thi chng trnh t th tc Sub Main................................................... 165Chng 13: LP TRNH CSDL VI ADO.NET.................... 166
13.1. Lp trnh vi ADO.NET ....................................................................................... 16613.1.1. Thit lp kt ni n CSDL ............................................................................ 16613.1.2. To b iuphi d liu Data Adapter......................................................... 16913.1.3. Lm vic vi DataSet..................................................................................... 173
13.2. S dng cc iu khin rng buc d liu ............................................................ 17513.3. Duyt xem d liu ................................................................................................. 178
Chng 14: TRNH DIN D LIU BNG DATAGRID.... 182
8/13/2019 Bi ging LTQL_2012
4/189
Bi ging Lp trnh qun l 2012
4
14.1. S dng DataGrid hin th d liu trong bng................................................. 18214.2. nh dng cc li trong DataGrid.................................................................... 18814.3. Cp nht c s d liu.......................................................................................... 188
8/13/2019 Bi ging LTQL_2012
5/189
Bi ging Lp trnh qun l 2012
5
Chng1: LM QUEN VI VISUAL BASIC.NET
1.1. Mi trng pht trin Visual Studio.net
VS.NET l b cng c gip pht trin cc ng dng t ng dng desktop n
ng dng mng. N l mi trng pht trin tt c cc ngn ng nh VB.NET,
Visual C++, Visual C#.Net ht sc mnh m v thun li.
1.1.1. Khi ng visual studio.NET
Ln u khi ng, vs.NET s yu cu xem bn chy n vi u tin ng
dng v ngn ng no. Bn chn Visual Basic v start vs.net , mn hnh bt u
nh sau:
Nu trang start page khng hin, bn c th lm n xut hin bng cch chn
menu View | Other Windows | Start Page.
1.1.2. M mt d n ca visual basic
Ti trang start page, bn c th click vo projectca phn Open v duyt
mt d n sn c.
V d:- Click chut voprojectca phn Openti trang Start Page.
8/13/2019 Bi ging LTQL_2012
6/189
Bi ging Lp trnh qun l 2012
6
- Duyt n th mc cha d n ca chng 1
- M fileMusicTrivia.sln. Khi ny trang Start Pages tm n i, mt ca s
mi xut hin:
1.1.3. D n (Project) v gii php (Solutions)
Khi m d n trn chc hn bn nhn thy hai file l MusicTrivia.sln v
MusicTrivia.vbproj. file .sln l file gii php v file .vbproj l file d n.
Vy phn bit chng th no?
Trong VS, cc chng trnh ang trin khai v pht trin c gi l d n
(Projects) hoc gii php (Solution) bi chng cha rt nhiu file v do nhiu thnh
phn,i tngring l hp li. Mt chng trnh vs.NET bao gm mt file gii
php v mt file d n hp li. File d n cha thng tin c bit lin quan n mt
tc v lp trnh n l. File gii php li cha thng tin v mt hay nhiu d n.
Nh vy v tng lai th file .sln s c a chung hn.
1.1.4. Cc cng c ca VS.NET
Cng c trong vs.NET rt phong ph, sau y l m phng mn hnh lm vic
ca b vs.NET:
Menu Bar
Windows Form Designer
Standard ToolbarSolution Explorer
8/13/2019 Bi ging LTQL_2012
7/189
Bi ging Lp trnh qun l 2012
7
- Ca s Windows Form Designer: b thit k Form trc quan.- Ca s thuc tnh Properties: Cho php thay i thng s ca i tng thit
k form.- Ca s Solution Explorer: cha ton b cc phn t c s dng trong d n.- Tt c cc ca s ca b cng c vs.NET u c th di chuyn cng nh thay
i c kch thc.
1.1.5. B thit k Windows Forms Designer
VS.NET c mt b thit k form trc quan, cch hin th b thit k Formnh
sau:
- Gc phi mn hnh l ca s Solution Explorercha ton b cc phn tc s dng trong d n, hin th n bng cch chn View | Solution
Explorer.
- Double Click vo MusicTrivia.vb trong ca s Solution Explorer bn sthy tt c cc file cha form.
- Nhp chut vo biu tng View Designer trong solution hin thform thit k dng trc quan.
8/13/2019 Bi ging LTQL_2012
8/189
Bi ging Lp trnh qun l 2012
8
1.2. Chy mt chng trnh Visual Basic
Nhp chut vo ntstartmu xanh trnstandard bar chy chng trnh
hoc cng c th n phim F5.
1.3. Thot khi VISUAL STUDIO.NET
- Lu li nhng g chng ta lm bng cch chnFile | Save all.
- ChnFile | Exit thot khi vs.NET.
1.4. Vit mt chng trnh Visual Basic.NET u tay
1.4.1. Tm hiu chng trnh
Vit chng trnh Luckyseven c giao din nh sau:
Form chnh gm c hai nt (quay s v kt thc), bn nhn (1, 2, 3 cha bas ngu nhin, 4 cha tn chng trnh v hin dng Bn chin thng nu c 3
nhn 1, 2, 3 u l s 7).
Khi bn click vo nt Quay sth chng trnh pht sinh ngu nhin ba s
ba nhn. Nu mt trong ba s l ch s 7 th hin nh tr tin i tng
picturebox1.
Cc bc thc hin:
- To giao din cho chng trnh- Thit lp thuc tnh cho cc i tng trong giao din
8/13/2019 Bi ging LTQL_2012
9/189
Bi ging Lp trnh qun l 2012
9
- Vit m chng trnh- Lu v chy chng trnh- Bin dch file thc thi .exe
1.4.2. Xy dng giao din v thuc tnh
- To nt button1trn form1: bn to button1theo nhiu cch khc nhau. l
ko t toolbox vo form; double click vo i tng button; click vo i tng
buttonv v hnh ch nht trn giao din chnh ca form1.
Sau khi to xong button1trn form1 bn t thuc tnh nh sau: R-click vo
button1trn form1 chnproperties. Trong ca sproperties windowsthit lp cc
thuc tnh ty thch (cn thn vi thuc tnh namet tn khng khong trng),
bn chn thuc tnh textthnh Quay s.
- Tng t vi button2bn chn thuc tnh textlKt thc. C hai nt thuc
tnh Text AlignulMiddle Center.
- To nhn label1: Bn to nhn bng nhiu cch nh vi nt nhng chn i
tngLabel t toolsbox. Bn t con tr vo cc cnh ca nhn chnh
size cho n. Nu khng chnh c th bn nhn thuc tnh Auto Sizeca nhn ny
trn ca sProperties, chnh n thnhFalse l xong.
Sau khi to xong lable1trn form1, bn t thuc tnh cho n nh sau: Text
trng; TextAlignMiddle center; Cc thuc tnh khc ty thch.- Tng t vi cc nhn lable2, lable3, lable4. Ring lable4bn t thuc tnh
textl Chng trnh s 7 may mn.
- ToPicturebox1i tng cho php cha nh: To picturebox1tng t
nh to cc i tng khc vi cch click vo i tng trn Tools
box.
Thit lp thuc tnh choPicturebox1: SizeModeStretchImage (cho php nh
co gin ng theo kch c caPicturebox); VisibleFalse (nh khng hin tr khi
m chong trnh cho php); Imagebn chn nh no ty thch.
Bn c th ko v tr cc i tng trn form1 sao cho ph hp.
1.4.3. Vit m chochng trnh
S kinForm1_Load
M l phn quan trng v mnh m nht dng ty bin v xy dng chng
trnh. xem m ca form1 ta R-click vo phn Form1 v chn ViewCode. Kt
qu:
PublicClassForm1
8/13/2019 Bi ging LTQL_2012
10/189
Bi ging Lp trnh qun l 2012
10
EndClass
y l cu trc c trng ca vb. Ta tip tc bn v th tc form_load.Loadl s
kin triu gi mt form khi thc thi. to bn chn form1eventst danh sch x
xung nh sau:
Tip l chn s kin loadt danh sch x xung k bn phn chn s kin:
V vs.net t to mt th tc cho bn nh sau:
PrivateSubForm1_Load(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesMe.Load
EndSub
8/13/2019 Bi ging LTQL_2012
11/189
Bi ging Lp trnh qun l 2012
11
V y l chng trnh sinh s ngu nhin nn bn cn gi n hm rnd() hm
sinh ngu nhin. Cng theo , ta khai bo trong s kin form1_load hm
Randomize():
PrivateSubForm1_Load(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesMe.Load
Randomize()
EndSub
Vit m cho nt nhn quay s - button1
Ta mun chng trnh thc hin quay s ngu nhin khi click vo nt quay sth
phi vit m hay chnh xc hn l to th tc c tn Button1_Clickx l s
kin.Vic to th tc ny nh sau: bn tin hnh mt trong cc cch. Th nht,
double click vo nt quay s trn giao din thit k form. Cch th hai chnitng button1t danh sch x xung:
Tip theo chn s kin clickbn danh sach x xung bn cnh:
V nhp chnh xc on m sau vo phn th tc tng ng xut hin:
PrivateSubButton1_Click(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesButton1.Click
PictureBox1.Visible = False
8/13/2019 Bi ging LTQL_2012
12/189
Bi ging Lp trnh qun l 2012
12
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
'Nu mt trong ba nhn xut hin s 7 th hin
nh vku beep
If(Label1.Text = "7") Or(Label2.Text = "7") Or
(Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
EndIf
If(Label1.Text = "7") And(Label2.Text = "7")And(Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
Label4.Text &= "Bn chin thng!"
EndIf
EndSub
Vit m cho nt kt thc button2
Tng t nh button1, bn to s kin click ca button2 v nhp hm End()vo lxong.
M y ca chng trnh
PublicClassForm1
PrivateSubButton2_Click(ByValsender AsObject,
ByVale AsSystem.EventArgs) HandlesButton2.Click
End
EndSub
PrivateSubButton1_Click(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesButton1.Click
PictureBox1.Visible = False
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
'Nu mt trong ba nhn xut hin s 7 th hin
nh vku beep
8/13/2019 Bi ging LTQL_2012
13/189
Bi ging Lp trnh qun l 2012
13
If(Label1.Text = "7") Or(Label2.Text = "7") Or
(Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
EndIf
If(Label1.Text = "7") And(Label2.Text = "7")
And(Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
Label4.Text &= "Bn chin thng!"
EndIfEndSub
PrivateSubForm1_Load(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesMe.Load
Randomize()
EndSub
EndClass
1.4.4. Thc thi chng trnh
Chy chng trnh
chy chng trnh click vo nt start trn standard bar hay chn
Debug | start debuggingt menu bar.
Bin dch chng trnh ra file .exe
VS.NET h tr bn bin dch chng trnh ra file .exe chy trn bt k mi
trng no. N ng gi tt c cc thnh phn cn thit v to ra file chy trn tt c
mi trng windows.C hai kiu file chy: kiuDebug build(g li) v release build(xy dng).
Trn l thuyt, kiu debug build chy chm hn v cha thng tin g li. Trn
thc t th chng chy tng ng nhau.
to ra file thc thi chnBuild | Build luckyseeven.
8/13/2019 Bi ging LTQL_2012
14/189
Bi ging Lp trnh qun l 2012
14
Chng trnh s to ra mt th mc BIN cha hai th mc con l DEBUG v
RELEASE c haifile luckyseven.exe l hai file thc thi ta cn.
8/13/2019 Bi ging LTQL_2012
15/189
Bi ging Lp trnh qun l 2012
15
Chng2: LM VIC VI CC IU KHIN TRN TOOLBOX
TOOLBOX cha cc iu khin thit k form chng trnh. Bn c th s
dng nhng iu khin c sn hay thm mt vi thnh phn vo s dng
sau ny.
2.1. Xy dng chng trnh HELLOWORLD
2.1.1. Tm hiu chng trnh
Giao din chnh ca chng trnh nh sau:
Giao din gm mt textbox cho php nhp chui k t v mt button. Khi
chng trnh chy, click vo button hin th textbox hin dng ch
HelloWorld.
2.1.2. Thit k chng trnh
Bn to mi mt d n nh hc. Ti trang start pagechn to mi mt
Visual Studio Solution.Nhp tn ti Namel HelloWorld, click vo ntBrowse
chn ng dn lu d n ca mnh.
8/13/2019 Bi ging LTQL_2012
16/189
Bi ging Lp trnh qun l 2012
16
Nhn OK to.
By gi bn c mt Solution. Tip theo ta to mi mt d n t Solution
nybng cchR-click vo Solution va to chnAdd | New Project
Mt ca s hin ra, click chn Windows Application ti Visual Studio
Installed Template. Nhp tn lHelloWorld ti Name, ng dn nh ng dn
cha solution mi to.
8/13/2019 Bi ging LTQL_2012
17/189
Bi ging Lp trnh qun l 2012
17
Thit k:
- To mt Textbox (textbox1) v mt Button (Button1) ln giao din ha
ca Form nh bit
TextBox: iu khin cho php nhp mt chui cc k t cho chng trnh x
l
Button: iu khin cho php chng trnh c mt hnh ng khi ngi dng
click ln n khi chy chng trnh.
- Thit lp thuc tnh cho cc iu khin: Textbox1 Text:Rng; Button1
Text:Hin th.
Vit m:
- Ti giao din chnh ca Form double click vo Button1 chuyn sang ch
vit m, vit th tcButton1_Click
-Nhp on m sau:
TextBox1.Text = "HelloWorld!"
Chy chng trnh:Nhnnt start.
2.2. S dng iu khin DATETIMEPICKERDATETIMEPICKER l iu khin cho php ngi dng chn thi gian di
dng giao din ca lch biu.
2.2.1. Chng trnh BirthdayTm hiu chng trnh
8/13/2019 Bi ging LTQL_2012
18/189
Bi ging Lp trnh qun l 2012
18
Giao din ca chng trnh:
Chng trnh c mt iu khin DaeTimePicker (trn TOOLBOX l iu
khin c hnh ) cho php ngi dng chn mt ngy bt k
chng trnh x l v mt ntButton1s thc hin a ra mt hp thng bo bng
MsgBoxhin th ngy m ngi dng chn.
2.1.2. Xy dng giao din
Bn cng to mi mt Solution trng c tn Birthdayv thm mt Project c
tn tng t dng Windows Application trong Visual Studio Installed Template
nh v d trc.
Ti giao din thit k ca form1, thm hai iu khin l DateTimePickerv
Button1 vo, t thuc tnh Text cho Button1 l Hin ngy sinh. Lu li tt c
nhng thit t bng cch nhp chn Save Alltrn Standard Bar. Nu chng trnh
hin ra mt thng bo yu cu chn ch lu th bn chn lu vi m ha 65001.
2.1.2. Vit m cho chng trnh
Bn ch cn vit m cho Button1 thc thi hnh ng hin ra thng bo khi
ngi dng chn ngy v click ln n. Double click vo Button1 ti giao din
thit k form1 v nhp m nh sau:
MsgBox("Ngy sinh ca bn l: "& DateTimePicker1.Text)
MsgBox("Ngy trong nm: "&DateTimePicker1.Value.DayOfYear.ToString)
8/13/2019 Bi ging LTQL_2012
19/189
Bi ging Lp trnh qun l 2012
19
MsgBox("Hm nay l ngy: "& Now.ToString)
on m ny shin th ln lt ba thng bo c trong du ngoc n. Du
& kt ni chui nh Ngy sinh ca bn l vi ni dung l thuc tnh Textca
iu khin DateTimePicker1. Cc hm khc cc bn s lm quen dn trong cc
chng sau.
Thc thi chng trnh
Hy th chy chng trnh v chn ng ngy sinh ca mnh xem sao.
2.2.2. Lm quen vi cc thuc tnh khc ca DateTimePicker
Click vo i tngDateTimePicker1trn giao din chnh ca form v chn
m thuc tnh ca n.
TrnProperties Windows,th thayi cc thuc tnh ca n. V d, cho n
hin th thng tin v gi thay v ngy thng, bn thay i thuc tnh Format t long
thnh Time.
2.3. Lm vic vi cc iu khin nhp liuTrong sut qu trnh lp trnh, thc t ta lun xuay quanh vic lp trnh x
l cc iu khin nhp liu. Cc iu khin nhp liu gm TextBoxcho php ngi
dng nhp vo mt chui cc k t, menu th hin thng tin di dng chn lnh,
cc loi hp thoi nh Checkbox, ListBox, RadioButton, ComboBoxth hin thng
tin di dng tng t nh menu
2.3.1. Tm hiu CheckBox
S dng
CheckBox l iu khin cho php ngi dng chn la kh nng x l ca
chng trnh. Ta th tm hiu k hn v iu khin ny qua bi tp sau:
Chng trnh MyCheckBoxChng trnh c hai CheckBox cho php click chn. Nu click chn vo
CheckBoxno th s hin mt bc nh tng ng vi n.
8/13/2019 Bi ging LTQL_2012
20/189
Bi ging Lp trnh qun l 2012
20
Thit k giao din:
To mt gii php mi v thm vo mt d n nh bit, t tn l
MyCheckBox.
Cc iu khin s dng trong form gm:
- CheckBox1: thuc tnh CheckedFalse; TextMy tnh c nhn
- Checkbox2: thuc tnh CheckedFalse; TextMy photocopy
- PictureBox1: thuc tnhImageNone; SizeMode: StretchImage
- PictureBox2: thuc tnhImageNone; SizeMode: Stretchimage
Vit mchng trnh:
V ta mun khi ngi dng click vo checkbox th lp tc c thay i n/hin
cc nh ngay nn ta cn xy dng th tc th hin s thay i gn vi cc checkbox.
Trong vb th tc l th tc CheckBox1_CheckedChangedm ta c th to
ra bng cch nhp p vo iu khin checkbox t giao din thit k form hay lachn t danh sch x xung nh bit.
- Double click vo iu khin Checkbox1 to th tc
CheckBox1_CheckedChanged.Sau nhp on m sau vo:
IfCheckBox1.CheckState = 1 Then
'PictureBox1.Visible = True
PictureBox1.Image =
System.Drawing.Image.FromFile _
8/13/2019 Bi ging LTQL_2012
21/189
Bi ging Lp trnh qun l 2012
21
("D:\Data\Studying\VS.Net 05\Tung buoc lap
trinh vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\MyCheckBox\MyCheckBox\Images\Calcultr.bmp")
PictureBox1.Visible = True
Else
PictureBox1.Visible = False
EndIf
Ch : Du _ dng m th 3 t trn xung l du cho php xung dng khi
cm thy dng m qu di trong VB. Bc nh ca cc bn mun cho vo iu khin
PictureBox1khng nht thit phi ging nh trn. Bn c th copy mt bc nh bt
k vo th mc cha d n v ko trc tip t ca s Solution Explorervo trong
on m ly ng dn.- Tng t, to th tc CheckBox2_CheckedChangednh sau:
IfCheckBox2.CheckState = 1 Then
'PictureBox2.Visible = True
PictureBox2.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap
trinh vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\MyCheckBox\MyCheckBox\Images\CopyMach.bmp")PictureBox2.Visible = True
Else
PictureBox2.Visible = False
EndIf
2.3.2. Mt s iu khin khc
S dng
Ta th tm hiu tc dng ca mt s iu khin khc nh RadioButton,ComboBox, ListBox qua v d InputControls xem sao.
Chng trnh InputControls
Tm hiu chng trnh:
Chng trnh ny c 6 hin nh tng ngvi 5 mt hng v mt hin th
n v tin m ngi dng s chi tr khi mua hng.
th nht s hin th cc sn phm tng ng vi mt trong ba radiobutton
t trong iu khin GroupBoxiu khin cho php t mt s iu khin khc
vo (bn th tm xem n u trn TOOLBOX)
8/13/2019 Bi ging LTQL_2012
22/189
Bi ging Lp trnh qun l 2012
22
th hai, th ba v th t hin th cc sn phm tng ng vi cc mt hng
chn bi cc checkboxt trong GroupBox2.
th 5 hin th 1 trong 3 sn phm c chn bi iu khin ListBox1.
th 6 hin th nh ca n v tint m ngi dng chn bi ComboBox1.
Sau y l giao din ca chng trnh:
Thit k giao din:
- To hai iu khin GroupBox
- To 3 radioboxt vo trong iu khin GroupBox1.
- To 3 CheckBoxt vo trong iu khin GroupBox2.
- To 1 iu khinListBoxv khng nhp liu g c.
- To mt iu khin ComboBox.
- To 6PictureBoxv 3Labelcng 1Button.- Sa cc thuc tnh sao cho ph hp vi hnh trn. Ring hai iu khin
ListBox v ComboBox th cc d liu s c nhp khi Form c load vo lc
chng trnh chy.
Vit m chng trnh:
Di y l ton b m ca chng trnh, bn c th tham kho:
PublicClassForm1
8/13/2019 Bi ging LTQL_2012
23/189
Bi ging Lp trnh qun l 2012
23
PrivateSubButton1_Click(ByValsender As
System.Object, _
ByVale AsSystem.EventArgs) HandlesButton1.Click
End
EndSub
PrivateSubCheckBox1_CheckedChanged(ByValsender As
System.Object, _
ByVale AsSystem.EventArgs) Handles
CheckBox1.CheckedChanged
IfCheckBox1.CheckState = 1 Then
PictureBox2.Image =System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap
trinh vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\AnswMach.bmp")
PictureBox2.Visible = True
Else
PictureBox2.Visible = False
EndIfEndSub
PrivateSubCheckBox2_CheckedChanged(ByValsender As
Object, _
ByVale AsSystem.EventArgs) Handles
CheckBox2.CheckedChanged
IfCheckBox2.CheckState = 1 Then
PictureBox3.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap
trinh vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Calcultr.bmp")
PictureBox3.Visible = True
Else
PictureBox3.Visible = False
EndIf
8/13/2019 Bi ging LTQL_2012
24/189
8/13/2019 Bi ging LTQL_2012
25/189
Bi ging Lp trnh qun l 2012
25
vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Printer.bmp")
PictureBox5.Visible = True
Case2
PictureBox5.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc
lap trinh vb.net\Tung buoc lap trinh
vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\SateDish.bmp")
PictureBox5.Visible = True
EndSelectEndSub
PrivateSubForm1_Load(ByValsender AsObject, _
ByVale AsSystem.EventArgs) HandlesMe.Load
ListBox1.Items.Add(" cng")
ListBox1.Items.Add("My in")
ListBox1.Items.Add("ng ten")
ComboBox1.Items.Add("USD")
ComboBox1.Items.Add("Kim tra")
ComboBox1.Items.Add("Bng Anh")
EndSub
PrivateSubRadioButton1_CheckedChanged(ByValsender
AsObject, _
ByVale AsSystem.EventArgs) Handles
RadioButton1.CheckedChanged
PictureBox1.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh
vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\PComputr.bmp")
PictureBox1.Visible = True
EndSub
8/13/2019 Bi ging LTQL_2012
26/189
Bi ging Lp trnh qun l 2012
26
PrivateSubRadioButton2_CheckedChanged(ByValsender
AsObject, _
ByVale AsSystem.EventArgs) Handles
RadioButton2.CheckedChanged
PictureBox1.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinh
vb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Computer.bmp")
PictureBox1.Visible = True
EndSub
PrivateSubRadioButton3_CheckedChanged(ByValsender
AsObject, _
ByVale AsSystem.EventArgs) Handles
RadioButton3.CheckedChanged
PictureBox1.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc lap trinhvb.net\Tung buoc lap trinh vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Laptop1.bmp")
PictureBox1.Visible = True
EndSub
PrivateSubComboBox1_SelectedIndexChanged(ByVal
sender AsObject, _
ByVale AsSystem.EventArgs) Handles
ComboBox1.SelectedIndexChanged
SelectCaseComboBox1.SelectedIndex
Case0
PictureBox6.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc
lap trinh vb.net\Tung buoc lap trinh
8/13/2019 Bi ging LTQL_2012
27/189
Bi ging Lp trnh qun l 2012
27
vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Dollar.bmp")
PictureBox6.Visible = True
Case1
PictureBox6.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc
lap trinh vb.net\Tung buoc lap trinh
vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\Check.bmp")
PictureBox6.Visible = True
Case2PictureBox6.Image =
System.Drawing.Image.FromFile _
("D:\Data\Studying\VS.Net 05\Tung buoc
lap trinh vb.net\Tung buoc lap trinh
vb.net\3_Chapter3\Bai
tap\InputControls\InputContorls\Images\PoundBag.bmp")
PictureBox6.Visible = True
EndSelectEndSub
EndClass
Nh vd trc, cc nh bn c th ty bin.
2.4. S dng iu khin LINKLABEL
2.4.1. S dng
Cho php m trnh duyt web IE hay Netscape truy cp mt trang web.
Trong v d di y WebLink chng ta s th to chng trnh s dng
LinkLabel hin th chui vn bn trong Form, kt hp s kin Clickvi phng
thcProcess.Start m trang web.
2.4.2. Chng trnh WebLink
Tm hiu chng trnh
Giao din chng trnh:
8/13/2019 Bi ging LTQL_2012
28/189
Bi ging Lp trnh qun l 2012
28
Chng trnh ch c mt iu khin LinkLabelcho php ta m mt trang web
bt k. Trong v d ny ta m trang web cc bhttp://localhost/localstart.asp. y
c th thay bng a ch IP l 127.0.0.1.
Thit k giao din
Mmt d n v to form nh bit.
Vit m cho chng trnh
M ch Code Editor vit th tc LinkLabel1_LinkClickedx l
khi ngi dng click vo LinkLabel1bng cch double click vo iu khin
LinkLable1trn form1. Tip theo nhp chnh xc on m sau:
LinkLabel1.LinkVisited = True
System.Diagnostics.Process.Start _
("http://127.0.0.1/localstart.asp")
Chy chng trnh.Nu nh c ni mng, bn c th cho mt trang web no trc tuyn thay v
trang cc b. Bn cng cn cu hnh Default Website khng c bt c trc trc
no khi chy chng trnh.
http://localhost/localstart.asphttp://localhost/localstart.asphttp://localhost/localstart.asphttp://localhost/localstart.asp8/13/2019 Bi ging LTQL_2012
29/189
Bi ging Lp trnh qun l 2012
29
Hiu thm v m chng trnh
- Dng 1: LinkLabel1.LinkVisited = True
Dng ny c tc dng nh du mu th hin ngi dng duyt qua lin ktny nh thuc tnhLinkVisited.
- Dng 2: kt hp s kin click vi phng thc Process.Start m trang
web.
2.5. Ci t iu khin ACTIVEXVisual Studio.NET l mt sn phm hon ton mi ca Microsoft. Cc
chng trnh trc y thng da trn cng ngh COM (Component Object
Model). V .NET khng cn da vo m hnh COM na nhng n vn cho php ta
ti s dng chng cng nh a nhng i tng COM, ACTIVEX c vo ca s
TOOLBOX s dng nh mt iu khin ca VS.NET.
Cc iu khin activeX hay i tng COM thng cha trong cc file .exe
hay .dll. Khi bn ci t mt s chng trnh, ng dng th thng cng ng k
theo chng vo h thng, v d nh khi ci Microsoft Word chng hn, c mt iu
khin ActiveX gip v biu c tn Microsoft Chart.
Trong bi tp di y chng ta s a ActiveX Microsoft Chart vo
TOOLBOX ca VS.NET s dng.Nu bn no xy dng din n bng ngn
8/13/2019 Bi ging LTQL_2012
30/189
Bi ging Lp trnh qun l 2012
30
ng ASP.NET th cng c th thm iu khin FreeTextBox xy dng sn vo
TOOLBOX v s dng cc thnh vin ng ti bi vit ln din n kh tin ch.
Ci t ActiveX:
- a c mt iu khin ActiveX vo th trc ht TOOLBOX phi hin
ln tc l phi c mt d n ang m v m ch thit k form.
- Khi lm hin TOOLBOX, chn mt tab bt k mun cho thm ActiveX
vo, v dchn tab chun Windows Forms.
- R-Click vo TOOLBOX v chn ChooseItems nh hnh:
- Mt ca s hin ra cho php ta chn cc thnh phn mun thm vo tythch. C th chn thnh phn ca .Net Frame Works, COM Components hay l
chn mt iu khin no bn sn c bng click chn ntBrowse duyt. y ta
chn .COMComponents v duyt n iu khin ActiveX Microsoft Office Chart
11.0 thm vo. Nhp OK v ch xem kt qu.
Hnh minh ha:
8/13/2019 Bi ging LTQL_2012
31/189
Bi ging Lp trnh qun l 2012
31
V by gi trn TOOLBOX c thm iu khin mi cho ta thc hin:
8/13/2019 Bi ging LTQL_2012
32/189
Bi ging Lp trnh qun l 2012
32
Chng3: LM VIC VI MENU V HP THOI
Ni dung:
- Thm menu vo chng trnh vi iu khinMainMenu
- X l mc chn menu bng m lnh
- S dng hp thoi OpenFileDialogv ColorDialog
3.1. S dng iu khin MainMenuiu khin Menu cho php thm vo chng trnh cc thc n. Bn c th
thm mi, hiu chnh, sp xp li, xa cc menu. Bn cng c th thm cc hiu
ng nh gn phm tt, thm du chn CheckBox. Bn c th to s kin cho menu
bng m lnh nh cc iu khin khc.
Di y chng ta s s dng menu qua bi tp MyMenu
3.2. Chng trnh MyMenuTo mi mt gii php mang tnMyMenuv thm vo mt d n mi cng
tn nh bit trong cc bi tp trc.
Ti giao din thit k, a iu khinMenuStrip vo trong Form
bng cch double click hay ko th nh bit.
Chng ta khng cn quan tm n v tr ca menu trn form v VS s t ng
t n sao cho ph hp. Cc bn c th thay i cc thuc tnh sao cho ph hpbng cch click m Smart Tagsl nt mi tn tam gic mu en bn gc phi iu
khinMenu.
Khi c t vo form th iu khin menu s c t ti mt vng nh trn
hnh gi l khay cng c - Component trayv VS s hin th trc quan menu trn
u ca s Form.
Chui Type Herel ni bn c th click chn v nhp vo cc mc chn cho
menu.
Nhp chut vo chui Type Herev g vo chui Clock v n enter.
8/13/2019 Bi ging LTQL_2012
33/189
Bi ging Lp trnh qun l 2012
33
Nhp chut vo chui Type Herecon di ri g Date, Time nh hnh
ng phn thit k menu, bn click vo mt vng no trn form, hin
th bn li click vo menu Clocknh trn.
Tip theota s to mt s ty bin cho Menu.
Thm phm truy cp vo cc mc chn lnh trn menu
Trong mt s phn mm hay ngay trnh duyt Windows Explorer ca h iu
hnh cc bn c th n t hp Alt + phm tt m nhanh mt thc n no .Cc phm tt y c gi l phm truy cp Access Key. Phm ny c du gch
chn di.
Trong VS, to phm ny menu kh n gin. Bn ch vic g thm du
& trc k t no mun hin th gch chn trong phn Type Here.
Bn hy to ra cc phm tt cho cc mc chn ca menu Clocknh hnh:
Thay i th t cc mc chn
Vic thay i th t cc mc chn kh n gin, bn m ch thit k menu
ri nhp chn mc chn no v ko n n v tr mong mun.
X l cc mc chn
By gi chng ta to ra s kin click cho cc mcchn ca menu. Khi bn
click voDatehay Timeth mt nhnLabels xut hin v hin th thng tin ngyhay gi tng ng.
lm c nh th, trc ht bn to ra mt Label vo trong form.To thuc
tnh cho i tngLabel1nh sau:BorderStyleFixedSingle; FontBold 14; Text
rng; TextAlign MiddleCenter.
Tip theota s to s kin click cho cc mc con trong menu Clock.
Nhp vo menu Clock trn form1 hin th menu con
Nhp i chut vo mc chn Time m ca s Code Editor v to ra mt
th tc c tn TimeToolStripMenuItem_Click. Trong VS.NET 2005 th
8/13/2019 Bi ging LTQL_2012
34/189
Bi ging Lp trnh qun l 2012
34
khi bn g tn mc chn l g th mc nh khi double click vit m th VS s to
ra mt th tc c phn u tn trng vi tn mc chn (phn tn cha c du cch
trng phn cch tn mc chn) menu ( trn l TimeToolStripMenuItem_Click).
Tt nhin y l default, bn c th thay i tn nh thuc tnh Name ca s
Properties.
Nhp dng m sau:
Label1.Text = TimeString
Tng t vi th tc DateToolStripMenuItem_Clickca mc chnDate
Label1.Text = DateString
Chy chng trnh MyMenu
Bn th chy chng trnh xem. Cc thng tin v ngy thng v thi gian s c
hin th bn trong lable11 khi bn click chn mc chn tng ng trn menu. thay i cch hin th thng s ngy thng v thi gian bn c th thao tc trong
coltrol panel.
Tm hiu cc hm v thuc tnh v thi gian h thng:
Thuc tnh, hm M t
TimeString Tr gi h thng
DateString Tr ngy h thng
Now Tr v ngy gi h thng m ha
Hour (time) Tr v gi datrn thi gian ca i s time
Minute (time) Tr v pht da trn thi gian ca i s time
Second (time) Tr v giy da trn thi gian ca i s time
Day (date) Tr v ngy da trin i s date (1-31)
Month (date) Tr v thng da trn i s date(1-12)
Year (date) Tr v nm ca i s date
Weekday (date) Tr v ngy trong tun ca i s date
3.2. S dng thnh phn iu khin hp thoi chunVS.NET 2005 cung cp 8 hp thoi chun. Cc bn c th tm thy cc iu
khin ny trn TOOLBOX. Bng sau lit k cc hp thoi chun :
Hp thoi M t
ColorDialog Cho chn tn v hiu chnh gi tr mu sc
FolderBrowserDialog Cho php duyt th mc
8/13/2019 Bi ging LTQL_2012
35/189
Bi ging Lp trnh qun l 2012
35
FontDialog Chn tn v kiu font ch mi
OpenFileDialog Cho ly v a, tn file, tn folder
PageSetupDialog iu khin cc thit lp trang inPrintDialog Cho thit lp cc ty chnh in n
PrintPreviewDialog Hin thxem trc khi in
SaveFileDialog Cho t tn file, folder mi sp ghi ln a
3.2.1. Thm vo hp thoi chunTa tip tc b sung cho d n MyMenutrc y bng cch thm vo cc hp
thoi, y ta s thm hai hp thoi chun l OpenFileDialog m mt nh chohin th trong mt iu khinPictureBox1v mt hp thoi ColorDialogcho php
chn mu hin th choLabel1hin th thng tin ngy gi h thng.
Trc ht m li solution MyMenu v ch thit k form (m file
form1.vb[Design])
To hai iu khin l OpenFileDialogv ColorDialogvo Form1 bng cch
double click vo hai iu khin ny trn TOOLBOX.
To iu khinPictureBox1vo trong form1. Giao din thit k:
8/13/2019 Bi ging LTQL_2012
36/189
Bi ging Lp trnh qun l 2012
36
3.2.2. Thm mc File vo menu chng trnhBn to thmmt mc con Colorvo trong menu Clock. Mc ny s kch hot
hp thoi ColorDialog1chn mu choLabel1.
To mt Menu Filebn cnh menuClocknh hnh. ng thi to thm cc
mc con Open, Close, Exit trong menu ny.
Tip theo bn thay i tn bng thuc tnh Nametrong ca sPropertiescho
cc mc chn: mc Open thnh mnuOpenItem, Close thnh mnuCloseItem, Exit
thnh mnuExitItem.
Bn cng t thuc tnh Enableca mc Close (gi l mnuCloseItem) thnh
False. Thuc tnh ny v hiu ha hay lm m mc Closenh hnh. N ch c
sng ln ngi dng click khi m thc thi chng trnh cho php.
3.2.3. Vit m chng trnhCi t th tc cho mc Opentrn menuFile.
Bn to th tc mnuOpenItem_Clickbng cch double click vo mc Open
trn menuFilev nhp on m sau:OpenFileDialog1.Filter = "Bitmaps (*.bmp) |
*.bmp"
IfOpenFileDialog1.ShowDialog() =
Windows.Forms.DialogResult.OK Then
PictureBox1.Image =
System.Drawing.Image.FromFile _
(OpenFileDialog1.FileName)
mnuCloseItem.Enabled = True
EndIf
Ch thch m:
- on m th nht gip lc ra loi file m l file nh dng Bitmap
(*.bmp). Bn c th m nhiu loi file bng cu lnh:
OpenFileDialog1.Filter = _
"Bitmaps(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg|All
Files(*.*)|*.*"
8/13/2019 Bi ging LTQL_2012
37/189
Bi ging Lp trnh qun l 2012
37
- Phng thc ShowDialog()l phng thc mi trong VS.NET, n c th
dng c vi mi hp thoi v ca s Windows Forms. Phng thc ny tr v
kt qu mang tn DialogResultcho bit ngi dng click vo hp thoi. V
nu nt OK c click th kt qu tr v s bng vi DialogResult.OK.- Khi nt Open c nhn, nu hp l th thuc tnh FileName ca
OpenFileDialog s mang y ng dn v tn file ca file m v th m
dng m th 3 s np chnh xc nh voPictureBox1.
. Ci t th tc cho mc Close
Tng t bn cng double click vo mc Close to th tc click cho n v
nhp chnh xc on m sau:
PictureBox1.Image = Nothing
mnuCloseItem.Enabled = FalseKhi m nh ri th mc Closesng ln, khi click vo mc ny thPictureBox1
khng cn nh na v mc ny li b v hiu ha.
Ci t th tc cho mc Exit
Nhp i vo mcExitv nhp dng m: End
Ci t th tc cho mc Color
To th tc mnuColorItem_Clickbng cch double click hay chn tdanh
sch x xung nh hnh
Nhp vo on m:
ColorDialog1.ShowDialog()
Label1.ForeColor = ColorDialog1.Color
Ch thch m:- Pht biu u tin gi ShowDialog() hin th hp thoi ColorDialog.
8/13/2019 Bi ging LTQL_2012
38/189
Bi ging Lp trnh qun l 2012
38
- Pht biu th hai nhn gi tr mu tr v t hp thoi ColorDialogv gn
cho mu ch TextForeColor ca iu khinLabel1. Bn c th gn mu cho bt
c thuc tnh no nhBackColor.
Ngoi ra, bn cng c th thm cc thuc tnh khc cho hp thoi ColorDialog
trc khi gi n phng thc ShowDialog(). Mt s thuc tnh v cch gi c
lit k nh sau:
'ColorDialog1.FullOpen = True :Hin th khung ty bin
mu m rng
'ColorDialog1.AllowFullOpen = True: hin th nt nh
ngha mu ty bin
'ColorDialog1.AnyColor = True: cho php chn tt c cc
loi mu'ColorDialog1.ShowHelp = True: Hin th nt nhn tr
gip
'ColorDialog1.SolidColorOnly = True: Hin th ch nhng
mu c
Chy chng trnh
Bn hy chy chng trnh bng cch nhn phm F5 hay Starttrn Standard Bar v
th tt c cc tnh nng ca chng trnh.
y l giao din:
3.2.4. Gn phm tt cho MENUPhm tt cho php bn n t hp phm thc hin lnh m khng cn chn
menu. V d nh Ctrl+C sap chp mt on text trong Word.
Ta th gn cc phm tt cho menu trong chng trnhMyMenu:
Trc ht m gii phpMyMenu ch thit k
8/13/2019 Bi ging LTQL_2012
39/189
Bi ging Lp trnh qun l 2012
39
Click vo menu Clock trn Form, chn mc Time v R-Click chn Properties.
Thit lp thuc tnh ShortCutKeysnh hnh
Tng t bn chn cc mc cn li theo thch min l cc phm nng khng
trng nhau.
3.2.5. Chy chng trnh hon thinBy gi bn kim tra nhng g lm bng cch chy chng trnh mt ln na.
Bn kim tra ln lt t vic m file nh cho hin ln trn PictureBox1, hin th
thng tin gi h thng, gi cc mc menu bng phm tt.
8/13/2019 Bi ging LTQL_2012
40/189
Bi ging Lp trnh qun l 2012
40
Chng4: BIN V TON T TRONG VISUAL BASIC.NET
Ni dung:
- S dng bin cha d liu ca chng trnh
-Nhn d liu nhp bng cch s dng hmInputBox- Hin th thng ip bngMsgBox
- S dng cc ton t ton hc v hm trong cng thc
- S dng cc phng thc ton hc trong lp System.Math ca .NET
4.1. S dng bin trong chng trnhTrong VB.NET, nu chn ch Option Explicity Onth bin phi c khai
bo trc khi s dng. Nu chn ch Option Explicity Off thkhng cn khai bo
bin trc khi s dng. Tuy nhin nn chn ch bt buc khai bo bin trnh
nhm ln.
4.1.1. Cch khai bo binVic khai bo c tin hnh bng cu lnhDim:
Dim tn bin As kiu d liu.
Khai bo c th t bt k u nhng thng c t u mi th tc,
ni cn dng bin. V d:
Dim LastName As String
Pht biu trn khai bo mt bin tn l LastNamec kiu d liu l String.
Sau khi khai bo bin th bn c th thoi mi gn hay lu thng tin vo bin, v
d:
LastName = Duc Lap
V c th gn ni dung bin cho thuc tnh ca i tng, v d:
Label1.Text = LastName
Ch v qui tc khai bo bin:
- Khng c khong trng trong tn bin. Tn bin bt u bng du gch chn_ hay ch ci.
- Tn bin c chiu di ty thch nhng nn t tn cho gi nh v khng nn
di qu 33 k t.
- Khng nn t tn bin trng vi cc t kha, tn thuc tnh, phng thc
chun ca VB trnh gp li khi bin dch.
4.1.2. S dng bin trong chng trnh
V d 1:Cch thay i gi tr ca bin trong chng trnh
8/13/2019 Bi ging LTQL_2012
41/189
Bi ging Lp trnh qun l 2012
41
Chng ta s lm quen vi cch thay i gi tr ca bin trong chng trnh qua
bi tp n gin VariableTest:
Thit k giao din:
Giao din ca form thit k nh sau
Tm hiu cch thc thi chng trnh:
Chng trnh s khai bo mt bin c tn LastNamev to cho n hai gi trkhc nhau l hai chui (String) ng thi gn gi tr chui cho thuc tnh Text
ca hai nhn khi ngi dng click vo ntHien thi.
Vit m:
To th tc Button1_Clickbng cch double clickvo nt Hien thi trn
form trong giao din thit k v nhp chnh xc on m sau:
DimLastName AsString
LastName = "c Lp"
Label1.Text = LastName
LastName = "LVP Office"
Label2.Text = LastName
V d 2:S dng bin cha d liu nhp vo
Bin thng dng nhn thng tin ca ngi dng nhp vo t cc iu
khin nh TextBox, ListBox, Menu,hayInputBox
Trong v d sau y chng ta s s dng hm InputBox nhp d liu u
vo.
Thit k giao din:
To mi mt gii php c tn InputBox v thm mt d n c cng tn. Tip
theo thit k giao din nh hnh:
8/13/2019 Bi ging LTQL_2012
42/189
8/13/2019 Bi ging LTQL_2012
43/189
Bi ging Lp trnh qun l 2012
43
MsgBox(FullName, , "Thng tin nhp")
EndIf
Ghi ch m:
- HmMsgBox:c tc dng hin mt hp thoi cha thng ip. Cu trc ca
hm nh sau:ButtonClicked=MsgBox(Prompt, Buttons, Tittle).
Promptl thng ip cn hin th
Buttonsl con s cho bit nhng nt nhn hay biu tng s hin th trong hp
thoi
Tittlel tiu hin th trn hp thoi
ButtonClickedc dng nhn v kt qu ca hm
Trong trng hp ch mun hin th th cc i s Buttons, Tittle v bin
ButtonClickedkhng cn c. v d trn, chng ta s dng bin FullName nhn v gi tr thuc tnh
Text ca TextBox1v xut gi tr bin ny nh hm MsgBox.
4.2. Cc kiu d liu c bn
4.2.1. Cc kiu d liu c bn
Kiu d liu Kch thc Phm vi V d
Short 16-bit -32,678 - 32,767 Dim S as Short
S = 12500
Integer 32-bit -2,147,483,648 n
2,147,483,647
Dim I as Integer
S = 4000
Long 64-bit -9,233,372,036,854,775,808
n
9,233,372,036,854,775,807
Dim L as Long
L = 3988890343
Single 32-bit (du
phy ng)
-3.402823E38 n
3.402823E38
Dim Sg as Single
Sg = 899.99
Double 64-bit (du
phy ng)
-1.797631348623E308 n
1.797631348623E308
Dim D as Double
D=3.1.4159265
Decimal 128-bit Trong khong +/-79,228x1024 Dim Dc as Decimal
8/13/2019 Bi ging LTQL_2012
44/189
Bi ging Lp trnh qun l 2012
44
Dc=7234734.5
Byte 8-bit 0-255 Dim B as Byte
B=12
Char 16-bit 0-65,536 Dim Ch As Char
Ch=L
String Nhiu k t Cha 0 n 2 t k t Dim St As String
St=c Lp
Boolean 16-bit Hai gi tr True hay False Dim Bl As Boolean
Bl = True
Date 64-bit T 1/1/1 n 31/12/9999 Dim Da As Date
Da=#16/07/1984
Object 32-bit Bt k kiu i tng no Dim Obj As Object
V d: Xy dng chng trnh c tn MyDataTypes cho php ngi dng
chn mt kiu d liu trong mt danh sch cc kiu d liu. Khi ngi dng click
chn kiu d liu tng ng no th mt thng bo v di v mt v d c a
ra trong mt TextBox.
Giao din chng trnh:
To form c cc iu khin:ListBox, TextBoxv mtButtonnh hnh.
Vit m:
- Khai bo bin: t di dng PublicClassForm1:
DimSh AsShort
DimI AsInteger
8/13/2019 Bi ging LTQL_2012
45/189
Bi ging Lp trnh qun l 2012
45
DimL AsLong
DimSg AsSingle
DimDb AsDouble
DimDc AsDecimal
DimB AsByte
DimCh AsChar
DimStr AsString
DimBo AsBoolean
DimDa AsDate
- To th tc Form1_Load thm cc mc chn cho ListBox1:
ListBox1.Items.Add("Short")
ListBox1.Items.Add("Integer")ListBox1.Items.Add("Long")
ListBox1.Items.Add("Single")
ListBox1.Items.Add("Double")
ListBox1.Items.Add("Decimal")
ListBox1.Items.Add("Byte")
ListBox1.Items.Add("Char")
ListBox1.Items.Add("String")
ListBox1.Items.Add("Boolean")ListBox1.Items.Add("Date")
- To th tc ListBox1_SelectedIndexChanged hin thng tin trn
TextBox1:
SelectCaseListBox1.SelectedIndex
Case0
TextBox1.Text = " di: -32,678 -
32,767. V d: "
Sh = 1000
TextBox1.Text &= Sh
Case1
I = 4000
TextBox1.Text = " di: -2,147,483,648
n 2,147,483,647. V d: "
TextBox1.Text &= I
Case2
L = 3988890343
8/13/2019 Bi ging LTQL_2012
46/189
Bi ging Lp trnh qun l 2012
46
TextBox1.Text = " di: -
9,233,372,036,854,775,808 n 9,233,372,036,854,775,807.
"& _
"V d: "
TextBox1.Text &= L
Case3
Sg = 899.99
TextBox1.Text = " di: -3.402823E38
n 3.402823E38 "& _
"V d: "
TextBox1.Text &= Sg
Case4Db = 3.14159265
TextBox1.Text = " di: -
1.797631348623E308 n 1.797631348623E308. "& _
"V d: "
TextBox1.Text = Db
Case5
Dc = 7234734.5
TextBox1.Text = " di: Trong khong+/-79,228x1024. "& _
"V d: "
TextBox1.Text &= Dc
Case6
B = 12
TextBox1.Text = " di: 0-255. "& _
"V d: "
TextBox1.Text = B
Case7
Ch = "L"
TextBox1.Text = " di: 0-65,536. "& _
"V d: "
TextBox1.Text &= Ch
Case8
Str = "c Lp"
8/13/2019 Bi ging LTQL_2012
47/189
Bi ging Lp trnh qun l 2012
47
TextBox1.Text = "Cha 0 n 2 t k t.
"& _
"V d: "
TextBox1.Text &= Str
Case9
Bo = True
TextBox1.Text = "True hay False. "& _
"V d: "
TextBox1.Text &= Bo
Case10
Da = Now.Date
TextBox1.Text ="T 1/1/1 n
31/12/9999. "& _
"V d: "
TextBox1.Text &= CStr(Da)
EndSelect
- To th tc Button1_Click kt thc chng trnh:
End
4.2.2. Kiu d liu t nh nghaVisual Basic cng cho php ta t nh ngha kiu d liu ca ring mnh, gi
l kiu d liu cu trc hay kiu d liu t nh ngha bi ngi dng (User
Defind Type hay UDT) bng pht biu Structure. Pht biu ny phi xut hin
u form hay trong n th m code module ging nh cc bin khai bo Public. V
d:
StructureEmployee
Dimname AsString
DimDateOfBirth AsDateDimage AsDate
EndStructure
Sau khi to mi mt UDT bn c th s dng n ngay trong th tc hay
chng trnh. V d:
DimWorker1 AsEmployee
Worker1.name = "L Th Lan"
Worker1.age = Date.FromOADate(12 / 1 / 1983)
8/13/2019 Bi ging LTQL_2012
48/189
Bi ging Lp trnh qun l 2012
48
4.3. Hng sHng l mt bin c bit khng thay i gi tr. Hng s c khai bo bng
t kha Const. V d:
ConstPI AsDouble= 3.14159265
Label1.Text = PI
4.4. Lm vic vi ton t trong VISUAL BASIC.NETVisual Basic.NET cung cp cc ton t c bn sau:
Ton t M t
+ Php cng
- Php tr
* Nhn
/ Chia
\ Chia ly phn nguyn
^ M ly tha
& Ni chui
4.4.1. Cc ton t c s: +, -, * , /Ta s s dng cc ton t n gin ny lm v d BasicMathsau:
Tm hiu chng trnh:
Giao din:
Chng trnh gm hai textbox cho php nhp hai gi tr gn cho hai bin
value1 v value2, bn radiobutton cho php chn bn ton t khc nhau, khi
nhp y hai gi tr th c th thc hin tnh bng cch nhp chn nt thc hi n
tnh v kt qu hin th trong textbox3 kt qu.Xy dng giao din:
8/13/2019 Bi ging LTQL_2012
49/189
Bi ging Lp trnh qun l 2012
49
Bn to mt gii php v thm mt d n cng tn BasicMathng thi thit k
giao din nh hinh.
Vit m:
- Khai bo bin: bn khai bo 2 bin value1, value2 u lpform1nh sau:
Dimvalue1, value2 AsDouble
- To th tc Button1_Clickbng cch double click vo nt thc hin
tnh v nhp on m sau:
IfTextBox1.Text = ""OrTextBox2.Text = ""Then
MsgBox("Bn cn nhp y hai gi tr")
Else
value1 = CDbl(TextBox1.Text)
value2 = CDbl(TextBox2.Text)IfRadioButton1.Checked = TrueThen
TextBox3.Text = value1 + value2
EndIf
IfRadioButton2.Checked = TrueThen
TextBox3.Text = value1 - value2
EndIf
IfRadioButton3.Checked = TrueThen
TextBox3.Text = value1 * value2EndIf
IfRadioButton4.Checked = TrueThen
TextBox3.Text = value1 / value2
EndIf
EndIf
Ch thch m:
- Hm CDbll hm chuyn kiu sang kiu Double.
4.4.2. S dng cc ton t: \, Mod, , &Chng ta tip tc s dng bn ton t khc gm: chia ly nguyn ( \), chia ly
d (Mod), m ly tha (^), ni chui (&) trong bi tpAdvancedMathsau y:
Tm hiu chng trnh:
Chng trnh Advancedcng tng t nh chng trnh BasicMathva xy
dng trn, ch thay th cc ton t m thi.
Thit k giao din:
8/13/2019 Bi ging LTQL_2012
50/189
Bi ging Lp trnh qun l 2012
50
To mt gii php mi v thm vo mt d n c cng tn l AdvancedMath
v thit k giao din nh hnh.
Vit m:- Khai bo bin: bn khai bo hai bin u lp Form1 nh sau:
Dimvalue1, value2 AsDouble
- To th tc Button1_Click nh sau:
IfTextBox1.Text = ""OrTextBox2.Text = ""Then
MsgBox("Bn phi nhp y hai gi tr")
Else
value1 = TextBox1.Text
value2 = TextBox2.Text
IfRadioButton1.Checked = TrueThen
TextBox3.Text = value1 \ value2
EndIf
IfRadioButton2.Checked = TrueThen
TextBox3.Text = value1 Modvalue2
EndIf
IfRadioButton3.Checked = TrueThen
TextBox3.Text = value1 ^ value2
EndIf
IfRadioButton4.Checked = TrueThen
TextBox3.Text = value1 & value2
EndIf
EndIf
Chy chng trnh:
Khi chy chng trnh, vi ton t & th xy ra li nu bn nhp vo haitextbox hai gi tr value1 hay value2l hai chui, v d value1 l sinh v value2
8/13/2019 Bi ging LTQL_2012
51/189
Bi ging Lp trnh qun l 2012
51
l nht. Li ny gi l li thc thi runtime error pht sinh khi chy chng
trnh. Mn hnh li nh sau:
C th khc phc li ny mt cch khng trit bng cch thay i kiu hai
bin pht biu khai bo chng nh sau:
Dimvalue1, value2 AsString
Bn chy li chng trnh xem phng thc thc thi ca ton t &.
Nhng nu bn nhp gi tr sinh nht thc hin mt trong ba ton t \,
Mod, ^ th chng trnh li pht sinh li nh trn.
khc phc trit li ny, phi s dng mt s hm chuyn kiu s cbn cc chng sau.
4.4.3. Th t u tinca ton tVisual Basic qui c th t u tin cc ton t nh sau:
()^-(du m) */(ton t nhn, chia) \(php chia nguyn) Mod(ly
phn d)+-(ton t cng, tr) .
4.5. Lm vic vi cc phng thc trong th vin .NET
Th vin .NET cung cp rt nhiu phng thc hu ch. Chng ta s lm quenvi cc phng thc c cung cp bi lpMathtrong th vin .NET.
B khung lm vic .NET FRAMEWORK l mt tnh nng mi trong
VS.NET, n chia s mi trng lp trnh v l nn tng ca h iu hnh windows
trong tng lai. B khung ny bao gm tp hp cc lp th vin m bn c th em
vo s dng trong d n ca mnh bng pht biuImports.
Trc ht chng ta s lm quen vi lp System.Math ca .Net FrameWork.
Bng sau s lit k danh sch mts phng thc thng dng trong lp Math:
Phng thc Mc ch
8/13/2019 Bi ging LTQL_2012
52/189
Bi ging Lp trnh qun l 2012
52
Abs(n) Tr v tr tuyt i ca n
Atan(n) Tr v Artang ca n (n radian)
Cos(n) Tr v cosin ca gc n (n radian)
Exp(n) Tr v en
Sign(n) Tr v -1 nu n0, 0 n
n=0
Sin(n) Tr v sin ca gc n (n radian)
Sqrt(n) Tr v cn bc hai ca n
Tan(n) Tr v tang ca gc n (n radian)
Lm quen vi cc phng thc trn thng qua v dMyFrameWorkMath.
Tm hiu chng trnh:Chng trnh ny ch n gin l tnh cn bc hai ca s 144 v a kt qu ra
mt textbox khi ngi dng nhn vo nt button c tn Tnh cn bc hai.
Xy dng giao din:
Giao din ch n gin nh sau:
Vit m:
- Khai bo s dng lpMathtrong chng trnh: bn t pht biu sau bn
trn pht biu Public Class Form1:
ImportsSystem.Math
Lnh ny cho php bn s dng, gi n phng thc, thuc tnh, i tng
c trong lpMathca th vin h thng Systemdng x l cc s hc.
- To th tc Button1_Clickbng cch double click vo nt Tnh cn bc
hai v g on m sau:
Dimketqua AsDouble
ketqua = Sqrt(144)
TextBox1.Text = ketquaChy chng trnh:
8/13/2019 Bi ging LTQL_2012
53/189
Bi ging Lp trnh qun l 2012
53
Bn chy chng trnh nh bit v xem kt qu.
Bi tp chng 4:
- M phng m hnh my tnh n gin vi cc ton t bit. Nhp d liubng cc nt nh Calculator ca h iu hnh Windows.
- Tm hiu v php tnh ton trn cc s nguyn ln.
8/13/2019 Bi ging LTQL_2012
54/189
Bi ging Lp trnh qun l 2012
54
Chng 5: CC CU TRC IU KHIN
Ni dung:
- Cc biu thc iu kin:IfThenv SelectCase
- Pht hin v qun l s kin chut
- S dng vng lpFor Next,Do Loop.
- S dng i tng nh thi Timer
5.1. S dng cc cu trc ra quyt nhCc ton t so snh c th dng trong biu thc iu kin:
Ton t so snh ngha
= Bng
Khc
< Nh hn
> Ln hn
= Ln hn hoc bng
5.1.1. Cu trc r nhnh IfThen
Dng n gin ca mt biu thc r nhnh:
Ifbieuthuc ThenThucthi
Trong bieuthucl biu thc iu kin v Thucthil pht biu c gi khi
bieuthucnhn gi tr True.
V d
Ifgia
8/13/2019 Bi ging LTQL_2012
55/189
Bi ging Lp trnh qun l 2012
55
Else
Khi lnh n
EndIF
V d sau cho thy cch s dng pht biu r nhnh ny xem xt s thu
phi np trong bo co ti chnh:
Dimthunhap, thuenop AsDouble
thunhap=Cdbl(Textbox1.Text)
Ifthunhap
8/13/2019 Bi ging LTQL_2012
56/189
Bi ging Lp trnh qun l 2012
56
Ton t OrElse tng t. Nu ch cn thy mt biu thc TRUE th php c lng
s dngli.
5.1.2. Cu trc la chn Select Case
Cu trc ny cho php la chn trng hp v r nhiu nhnh mt cch hiuqu.
C php:
Selectcasegiatri
Casegiatri1
Khi lnh 1
Casegiatri2
Khi lnh 2
...
Casegiatrin
Khi lnh n
CaseElse
Khi lnh n+1
EndSelect
S dng cc ton t so snh trong cu trc Select Case
C th s dng cc ton t so snh nh , =, , >=, 100
MsgBox("p lo!")
CaseElse
MsgBox("Mng th")
EndSelect
Chng trnh v d:
Ta s tm hiu k hn v cu trc select qua v dMyCaseGreeting.
8/13/2019 Bi ging LTQL_2012
57/189
Bi ging Lp trnh qun l 2012
57
Giao din chng trnh:
Chng trnh bao gm mt listbox lit k danh sch 4 nc. Khi ngi dng
click vo mt nc no th tn nc hin trn mt nhn v thng tin chi tit hin
trn mt nhn khc.
Thit k giao din:To mt gii php mi, add mt d n cng tn MyCaseGreetingv thit k
giao din nh trn.
t tn i tng nh sau:
- Lable1: Namelbltittle, TextInternatinonal Welcome Program- Lable2:Namelblchoose, TextChoose a country
- Lable3:Namelblcountry, Text
- Lable4:Namelblinfo, Text
- ListBox1: namelstcountry
- Button1:Namebtnquit, TextQuit
Cc thuc tnh cn li c th ty chn.
Vit m:- Thm cc mc chn l 4 nc trong lstcountry: c th thm cc mc ny khi
thit k hoc khi to chng ti s kin Form1_Loadnh sau:
lstcountry.Items.Add("England")
lstcountry.Items.Add("Germany")
lstcountry.Items.Add("Mexico")
lstcountry.Items.Add("Italy")
- To th tc lstcountry_SelectedIndexChanged in thng tin
tn nc v thng tin li cho tng ng vi ngn ng cc nc cho ngi lptrnh:
8/13/2019 Bi ging LTQL_2012
58/189
Bi ging Lp trnh qun l 2012
58
lblcountry.Text = lstcountry.Text
SelectCaselstcountry.SelectedIndex
Case0
lblinfo.Text = "Hello, Programmer!"
Case1
lblinfo.Text = "Hallo, Programmierer!"
Case2
lblinfo.Text = "Hola, Programador!"
Case3
lblinfo.Text = "Ciao, Programmatore!"
EndSelect
Thm b qun l s kin chut vo chng trnhVi chng trnh MyCaseGreeting, khi ngi dng click vo lstcountry
nhng khng click ng vo mt trong bn mc th chng trnh lp tc hin thng
bo yu cu chn mt trong bn mc , ta thm vo b qun l s kin chut nh
sau:
To ra th tc lstcountry_MouseHoverbng cch:
M form ch vit m code editor, chn lstcountry class name v skin MouseHover Method name v g on m sau:
Iflstcountry.SelectedIndex < 0 Or_
lstcountry.SelectedIndex > 4 Then
lblcountry.Text = ""
lblinfo.Text = "Please click the country
name!"
EndIf
Hy chy li chng trnh xem c g khc bit hay khng.
5.2. S dng cc cu trc lp
5.2.1. Vng lp ForNext
C php:
Forbien = batdau Toketthuc[Stepbcnhay]
Khi lnh gi thc thi
Next
8/13/2019 Bi ging LTQL_2012
59/189
Bi ging Lp trnh qun l 2012
59
Trong bcnhay c th l mt s thc, mc nh
l 1.
V d:
Fori = 1 to4
Beep()
Nexti
on m trn s pht ra 4 ting bp.
Fori = 1 to4 step 0.5
Beep()
Nexti
on m trn y s pht ra 7 ting bp.
5.2.2. Vng lp DO LOOPVng lp DO LOOPSchycho n khi iu kin ghi trong phn WHILE sai
th dng.
C php:
Dowhilebieuthuc
Khi lnh
Loop
Vi vng lp ny, nu biu thc sai ngay t y th vng lp s khng thc
hin mt lnh no trong khi lnh. Nu mun vng lp thc thi t nht l mt lnh
th dng c php sau:
Do
Khi lnh
LoopWhileBieuthuc
V d:Vit chng trnh chuyn i nhit t F sang C
To mt gii php mi v thm vo mt d n cng tn
MyDoLoop_Temperature. To giao din nh hnh v:
Tos kin Form1_load v nhp vo on m sau:
DimFTemp, Celsius AsSingle
8/13/2019 Bi ging LTQL_2012
60/189
Bi ging Lp trnh qun l 2012
60
DimstrFtemp AsString
DimPrompt AsString= "in vo mt gi tr F"
Do
strFtemp = InputBox(Prompt," F sang C:")
IfstrFtemp ""Then
FTemp = CSng(strFtemp)
Celsius = Int((FTemp + 40) * 5 / 9 - 40)
MsgBox(Celsius, , "Nhit C l")
EndIf
LoopWhilestrFtemp ""
Chng trnh s hin mt hp thoi cho php bn nhp vo gi tr F
chuyn sang C. Vng lp s thc thi lin tc cho n khibn khng nhp g vohp thoi.
S dng t kha Until trong pht biu DoLoopNu ta dng t kha Untilth chng trnh se dng li khi no iu kin c
lng nhn gi tr TRUE.
V dta vit li iu kin LoopwhilestrFtemp ""nh sau:
LoopUntilstrFtemp = ""
Th chng trnh khng thay i kt qu thc thi.
5.3. S dng b nh thi TIMER
C th quy nh mt khi lnh no ch thc hin trong mt thi gian xcnh vi b nh thi gian Timer. S dng thuc tnh Intervalv t Enalbleca
iu khin Timer. Gi tr Interval bng 1000 tng ng vi 1 giy. Khi c thit
t, timer s pht sinh s kin Time_Tick thc thi. Khi mun dng b nh thi,
ta t enable l fasle.
V d 1: cch s dng Timer
To v d DigitalClockvi iu khin Timer. Ta t b m giy, khi thuc
tnh enable l true th c sau 1 giy (gi tr interval l 1000) th h thng pht sinh
s kin Time_Tick gi th tc thc thi.
8/13/2019 Bi ging LTQL_2012
61/189
Bi ging Lp trnh qun l 2012
61
Thit k giao din:Giao din form gm mt nhn hin thng tin ngy v gi l mt ng h in
t nh sau:
- To mi mt gii php v add vo mt d n. To form nh trn bng cchko mt lable v mt iu khin Timer1 vo form.
- t thuc tnhIntervalca Timer1 l 1000 (ng vi 1 s), thuc tnh enablel TRUE.
Vit m:To th tc Timer1_Tickbng cch double click vo iu khin Timer1 v
nhp vo on m sau:
Label1.Text = "Ngy: "& DateTime.Now.Date &
Chr(10)
Label1.Text &= TimeString
Chy chng trnh:Chy chng trnh v quan st thy trn form c mtng h in t nh hnh:
V d 2:S dng i tng TIMER hn ch thi gian
Ta c th s dng iu khin TIMER khng ch cho mt tc v no . Bi
tpMyTimePassWordsau y s s dng iu khin TIMER gii hn thi gian
nhp mt khu ca ngi dng.
Tm hiu chng trinh:Chng trnh c mt textbox cho php nhp password. Nu sau 15 giy m
ngi dng khng nhp mt khu chng trnh a ra thng bo v kt thc chng
8/13/2019 Bi ging LTQL_2012
62/189
Bi ging Lp trnh qun l 2012
62
trnh. Ngoi ra chng trnh cn c mt nt click ng nhp. Nu ngi dng
khng nhp pass th thng bo li cha nhp pass, nhp ng chui matkhau th
bo thnh cng, ngc li th bo khng ng nhp c.
Thit k giao din:
To mt gii php v thm vo mt d n cng tn l MyTimePassWordng
thi thit k giao din nh hnh trn.
t thuc tnhIntervalca Timer1 l 15000 ng vi 15s v enable l TRUE.
Vit m:Vitth tc Timer1_Tick x l khi qu 15 giy m ngi dng cha
ng nhp.
MsgBox("Rt tic, ht 15 giy."
)To th tc Button1_Clickx l ng nhp:
IfTextBox1.Text = ""Then
MsgBox("Bn cha nhp mt khu!")
Else
IfTextBox1.Text = "matkhau"Then
Timer1.Enabled = False
MsgBox("Bn ng nhp thnh cng!")
ElseMsgBox("Bn khng c quyn truy cp!")
EndIf
EndIf
8/13/2019 Bi ging LTQL_2012
63/189
Bi ging Lp trnh qun l 2012
63
Chng 6: G LI V BY LI TRONG VB.NET
Ni dung:
- Cc kiu li khc nhau trong chng trnh
- S dng cng c g li trong VS.NET t im dng cho chng trnh - S dng ca s Watch kim tra cc gi tr ca cc bin khi thc thi chng
trnh
- Sdng ca s Command thay i gi tr bin v thc thi lnh trc tip
- Qun l cc li thc thi chng trnh bng pht biu TryCatch.
- Kim tra mt s iu kin li c trng bng pht biu Catch When
- S dng thuc tnh Err.Number v Err.Description xc nh cc li ngoi
l
- S dng cc b x l li kt hp vi cc k thut phng v li khc - Thot khi b x l li bng pht biuExit Try
6.1. Tm kim v hiu chnh li
6.1.1. Cc loi liC ba loi li thng xy ra, gm:
- Li c php (Syntax Error), cn c gi l li bindch (Compiler error):
Li c php xy ra khig sai cu trc ngn ng. B son tho m c th bt c
li c php(xut hin dng gch chn mu xanh long ngong di dng m gy
li).
- Li thc thi (Runtime error): Xy ra bt ng khi chng trnh ang chy. Khi
gp li thc thi, ta cn ch n vic x l d liu ng nhp vo ng v hp l.
- Li logic: Li do t duy sai ca ngi lp trnh dn n kt qu sai vi mong
mun. pht hin li logic, cn chy chng trnh nhiu ln vi nhiu d liu
khc nhau v kim tra kt qu xem c ph hp hay khng.
C rt nhiu li yu cu ta phi c gii php thch hp thng qua b x l li(error handler). N l mt on chng trnh c kh nng pht hin cc li khc
nhau v a ra gii php thch hp x l.
6.1.2. D li tng dng lnh s dng ch ngt (BREAK MODE)Mt trong nhng cch g li hiu qu l chy tng dng m v kim tra ni
dung ca mt hay nhiu bin. thc hin iu ny, bn chuyn sang ch ngt.
Khi chng trnh vn chy nhng ca s Code Editor.
Vi v d DebugTestsau y, ta s hc cch t im dng (breakpoint) v
chuyn chng trnh sang ch ngt kim tra li. c lp li, bn s dng
8/13/2019 Bi ging LTQL_2012
64/189
Bi ging Lp trnh qun l 2012
64
nt Step into trn thanh standard bar v ca s Autos kim tra gi tr cc
bin cng nh thuc tnh chnh trong chng trnh.
V d DebugTest:
To mi mt d n c tnDebugTestv thit k form nh sau:
Vit m:To th tc Button1_click v nhp vo on m sau:
Dimtuoi AsInteger
IfTextBox1.Text = ""Then
MsgBox("Bn bao nhiu tui?")
Else
tuoi = CInt(TextBox1.Text)
Iftuoi > 13 Andtuoi < 20 Then
TextBox2.Text = "Bn l thanh thiu nin!"
Else
TextBox2.Text = "Bn khng phi l thanh
thiu nin"
EndIf
EndIf
Chng trnh s pht sinh li logic: la tui 13 cng l thanh thiu nin nhng
khi ngi dng nhp vo tui 13 chng trnh vn xem nh y khng phi l thanh
thiu nin.
8/13/2019 Bi ging LTQL_2012
65/189
Bi ging Lp trnh qun l 2012
65
Ta s dng im dng kim tra xem li ny do dng m no gy ra:
t im dng (BreakPoint):- M form ch son tho m v click chut vo l tri ca on m
nh hnh lm xut hin mt dng sng:
- Nhn F5 hay nt start chy chng trnh.- G gi tr 13 vo textbox th nht v n nt Kim tra. Lc ny
chng trnh tr v ca s code editor v xut hin dng vng dng ta
t im dng nh th ny:
ch ny ta c th xem rt nhiu th m chng trnh ang din ra. C th
xem gi tr hin hnh ca bin tuoibng cch di chut ln bin tuoi, gi tr l 0
. Bn cng c th thay i gi tr bin hay gi tr nhp vo ca textbox1.
- Nhn nt Step Into hay F11 chuyn sang dng lnh tip theo.
8/13/2019 Bi ging LTQL_2012
66/189
Bi ging Lp trnh qun l 2012
66
- M ca s Autos bng cch chn Debug | Windows | Autos. Ca s nycho php bn xem tt c nhng g xy ra khi chng trnh chy.
- Tip tc n nt Step Into hay F11 ba ln na v quan st. Lc ny phtbiu If thy iu kin so snh sai (13 khng nm trong khong 13 20)
v chuyn n mnh Else. y chnh l li m chng ta cn tm. Vy
l ta cn xem xt li biu thc so snh trong pht biu If.
- Dng chy bng cch nhn nt stop v sa li ton t so snh > thnh>=13 ri lu li thay i ny.
B im dng:B im dng bng cch click chut vo im mu ca dng m thit
t im dng.
Chy li chng trnh v kim tra xem kt qu thay i hp l hay cha.
6.1.3. Theo di cc bin bng ca s WATCHC th theo di cc bin bng ca s Autos nhng ca s ny s khng hin
th tt c cc bin trong chng trnh, n ch hin th bin ca dng lnh ang thc
thi hay hm ang thc thi m thi.
xem ton b ni dung cac bin, c th dng ca s WATCH. Trong
VB.NET, c th m mt lc ti 4 ca s WATCH. m bn chn Debug |Windows | Watch.
Bn m li d n trn v chy li ch ngt. M Watch1 theo cch trn.
theo di bin hay biu thc no bn chn n bng cch bi en v R-Click ri
chn Add Watch. Kt qu:
8/13/2019 Bi ging LTQL_2012
67/189
8/13/2019 Bi ging LTQL_2012
68/189
Bi ging Lp trnh qun l 2012
68
EndTry
Trong Finallyl ty chn, cc t kha cn li l bt buc.
Cc li v ng dn v a
V d DiskDriverErrorsau s minh ha tnh hung x l li runtime thng
thy nht. Ta to mt form c nt nhn v mt nh PictureBox. Khi click vo nt
th nh trong mt a mm c tn 6_82MELINH.ico s load vo nh. Nu b a
mmra th khi chy chng trnh s bo li khng tm thy a.
Thit k Form:M mi mt d n v thit k form nh hnh:
Vit m:To th tc Button1_Click v g m nh sau:
PictureBox1.Image = System.Drawing.Image.FromFile("A:\6_82MELINH.ico")
Lc ny trong mm khng c a nn khi chy chng trnh s c thng bo
li xy ra
8/13/2019 Bi ging LTQL_2012
69/189
Bi ging Lp trnh qun l 2012
69
khc phc ta t thm khi try catch vo nhsau:
Ci t c ch x l li c a
Bn sa li th tc Button1_click nh sau:
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catchex AsException
MsgBox("Khng tm thy a mm trong A")
EndTry
Lc ny pht biu gy li PictureBox1.Image =System.Drawing.Image.FromFile _ c t trong khi TryCatch
nn khi chy chng s thc thi hin thng bo thay v pht sinh li nh trn:
8/13/2019 Bi ging LTQL_2012
70/189
Bi ging Lp trnh qun l 2012
70
S dng mnh Finally thc hin tc v dn dp
Mnh ny s cho php dng cc pht biu sau n d c hay khng c li
xy ra.
Tr li v d trn, ta thm vo on m nh sau:
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catchex AsException
MsgBox("Khng tm thy a mm A:\")
Finally
MsgBox(" bt li thnh cng.")
EndTry
V chy li chng trnh xem n hot ng nh th no.
6.2.2. Ci t TryCatch phc tp hnKhi chng trnh phc tp th vic bt li cng tr nn phc tp hn. Vi
TryCatch bn c th:
- t mt khi hay nhiu khi pht biu gia cc t kha .
- Cho php s dng mnh lc li Catch When
- Cho php s dng khi TryCatchlng nhau
8/13/2019 Bi ging LTQL_2012
71/189
Bi ging Lp trnh qun l 2012
71
- Cng vi i tngErrcho php xc nh li pht sinh
i tng Err:
y l i tng c bit cung cp chi tit thng tin li pht sinh. Cc thuc
tnh thng dng Err.Number, Err.Description cha thng tin m li, m t chi tit
li. Phng thc Err.Clear cho php xa b li hin hnh. Bng sau y lit k cc
li Runtime thng gp trong VB:
M li (Err.Number) M t
5 Gi hm hay truyn i s khng ng
6 Trn
7 Ht b nh
9 Truy xut vt ch s mng
11 Chia cho 0
13 Kiu khng hp l
48 Li np th vin DLL
51 Li ni b
52 Tn File hay s khng hp l
53 Khng tm thy File
55 File ang m
57 Li thit b xut nhp
58 File tn ti
61 ay
62 Con tr file vt qu im cui file
67 File m qu nhiu
68 Thit b cha sn sng
70 Khng cho php truy xut
71 a cha sn sng
75 Truy cp ng dn v file khng ng 76 Khng thy ng dn
91 Bin i tng thiu t kha truy xut With
321 nh dng file khng hp l
322 Khng th to file tm
380 Gi tr thuc tnh khng hp l
381 Ch s thuc tnh khng hp l
422 Thuc tnh khng tm thy
423 Thuc tnh hay phng thc khng c
8/13/2019 Bi ging LTQL_2012
72/189
Bi ging Lp trnh qun l 2012
72
424 Yu cu v i tng
429 Khng th to i tng ActiveX
430 Lp i tng khng h tr Automation
440 Khng th to i tng Automation
460 nh dng trong Clipboard khng hp l
461 Phng thc hay bin thnh vin khng tm
thy
462 Server khng sn sng
463 Lp khng ng k trn my cc b
481 nh khng hp l
482 My in b li
Vn dng v d trn nhng ta thm thuc tnh Err.Number, Err.Description
ng thi ta cng tm hiu thm v mnh c li Catch When.
Sa li th tc Button1_Click nh sau:
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
CatchWhenErr.Number = 53 'nu khng thy file
MsgBox("Kim tra li ng dn v tn file")
CatchWhenErr.Number = 7 'Ht b nh
MsgBox("File nh qu ln - ht b nh", ,
Err.Description)
Catchex AsException
MsgBox("Khng tm thy a mm A:\", ,
Err.Description)Finally
MsgBox(" bt li thnh cng.")
EndTry
Trong khi lnh trn ta s dng mnh Catch Whenhai ln, mi ln ta s
dng thm cc thuc tnh Number ca i tng Err pht hin li c th hn.
T mnh pht sinh li:
Trong mt s trng hp bn c th t kim tra li trong mnh Try v
mun nhy ngay n mnh Catch li c x l. Khi VB.NET cung cp
8/13/2019 Bi ging LTQL_2012
73/189
Bi ging Lp trnh qun l 2012
73
phng thcErr.Raise lm iu . V d ta c th t pht hin ra li khng tm
thyFile v d trn (li 53) v thc hin pht biu trong mnh Catch:
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
IfErr.Number = 53 ThenErr.Raise(53)
CatchWhenErr.Number = 53
MsgBox("Khng tm File")
EndTry
Xc nh s ln th li
TryCatchcho php bn th li mt s thao tc gy ra li trc khi a raquyt nh khng thc hin thao tc ny na. V d ta c th xem s ln ngi dng
click vo nt Load File bao nhiu ln, nu vt qu s ln cho php th khng cho
ngi dng click tip na:
Khai bo thm bin dem di dng public class form1:
Dimdem AsShort= 0
Sa li th tc Button1_Click nh sau:
Try
PictureBox1.Image =System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catchex AsException
dem += 1
Ifdem
8/13/2019 Bi ging LTQL_2012
74/189
Bi ging Lp trnh qun l 2012
74
V nt Load File s b m i khng cho ngi dng click na nh th ny:
S dng cc khi TryCatchlng nhau
Bn c th s dng cc khi TryCatch lng nhau kim tra kp cc thao
tc c th gy li. V d by gi ta sa li v d trn ngi dng phi a a
mm vo A:\ ngay t ln thng bo li u tin, nu khng nt Load File lp
tc s b v hiu ha. Code:
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
CatchMsgBox("Khng tm thy a mm A:\, cho
a mm vo")
Try
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catchex AsExceptionMsgBox("Khng th load file!")
Button1.Enabled = False
EndTry
EndTry
Bn nn s dng vic lng hai pht biu TryCatch lng nhau trong trng hp
kim tra li li 2 ln. Cn nu kim tra nhiu ln th bn nn s dng kt hp vi
cc bin m v vng lpFor, Do Loop.
8/13/2019 Bi ging LTQL_2012
75/189
Bi ging Lp trnh qun l 2012
75
6.2.3. So snh c ch x l li vi cc k thut phng v liBn c th on trc xem li no c th xy ra phng trc thay v x l
li bng TryCatch. V d trong bi tp trn, thay v dng Try ta s dng phng
thc ca h thng lFile.Existskim tra xem c tn ti file hay khng ri mi gi
phng thc np nhFromFile:
dng c phng thc ny, bn cn khai bo s dng th vin IO bng t
khaImports u khilnh:
ImportsSystem.IO
Ri sa li m lnh trong th tc Button1_Click nh sau:
'Phng v li
IfFile.Exists("A:\6_82MELINH.ico") Then
PictureBox1.Image =System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Else
MsgBox("Khng tn ti file ny!")
EndIf
Vic s dng phng thc no l do bn quyt nh v trong hon cnh no th
dng phng thc no cho hp l.
6.2.4. S dng pht biu thot Exit TryPht biu ny l ty chn trong khi TryCatch. N gip bn thot khi khi
TryCatch khi mun.Tuy nhin nu trong khi TryCatch c pht biu Finally
th chng trnh s thc thi cc pht biu trong phn Finally trc khi thot khi
khi Try theo yu cu ca Ext Try.
V d nh sau:
'Thot Try vi Exit Try
TryIfPictureBox1.Enabled = FalseThenExitTry
PictureBox1.Image =
System.Drawing.Image.FromFile _
("A:\6_82MELINH.ico")
Catchex AsException
MsgBox("Khng tm thy File ny!")
EndTry
8/13/2019 Bi ging LTQL_2012
76/189
Bi ging Lp trnh qun l 2012
76
Trong on m trn, nu chng trnh kim tra xem iu khin PictureBox1
m cha sn sng th lp tc thot khi khi TryCatch m khng thc hin a ra
thng bo no.
8/13/2019 Bi ging LTQL_2012
77/189
Bi ging Lp trnh qun l 2012
77
Chng 7: S DNG MODULE, TH TC V HM
Ni dung:
- To cc module chun
- Khai bo v s dng cc binPublicton cc- S dngcc hm v th tc t nh ngha bi ngi dng
7.1. MODULE v bin Public trong chng trnh
7.1.1 To mt MODULE chunKhi d n ca bn rt ln th vic c nhiu form l iu ng nhin. C iu
bn khng th s dng nhng hm, bin khai bo trong form ny cho form kia
c. chia s bin v cc hm, th tc gia cc form trong d n , bn c th
khai bo chng trong mt module ca d n.Module l ni cha cc bin, cc hm, th tc v c th c gi t bt c ni
no trong chng trnh.Module l file c ui m rng .vb ch cha m. C th lu
module bng cch chn Flie | Save Module1 As.
Ta to mt module chun vi v dMymoduleTestsau y:
To mi mt gii php v thm vo mt d n cng tn MyModuleTest. Ti
ca s Solution Explorer, R-Click vo tn d n v chn Add | New Item nh
hnh:
8/13/2019 Bi ging LTQL_2012
78/189
8/13/2019 Bi ging LTQL_2012
79/189
Bi ging Lp trnh qun l 2012
79
vc
Thay i tn ca module bng cch t thuc tnh File Name thnhMathFuction:
xa module, bn r-clik vo n v chn Delete. tm loi b n ra khi
d n bn R-Click chn Exclude From Projects (c th chn Project | Exclude From
Project). Khi no mun thm tr li bn chn Add | Exist Item.
7.1.2. Lm vic vi cc bin PublicBin ton cc l bin c khai bo vi t kha Public trc. Bin ny cho
php gi ti bt c ni no trong chng trnh. V d:
Publictoancuc AsInteger
Khai bo ny khai bo mt bin tn toancucc kiu d liu l Integer.
V d:Ta quay li chng trnh LuckySeven lm trong cc chng trc
nhng trong v d ny ta s dng mt bin ton cc c tn solanthang lu li s
ln ngi chi chin thng v cho hin th n ln trong mt nhn.
8/13/2019 Bi ging LTQL_2012
80/189
Bi ging Lp trnh qun l 2012
80
Chng trnh gm ba nhn hin th 3 s ngu nhin, hai nt cho php clickquay s v kt thc chng trnh,mt PictureBox hin th nh khi chin thng,
mt nhn ghi tn chng trnhLuckySeven. Ta thit k thm mt nhn na (Label5)
hin th s ln chin thng ca ngi chi.
By gi ta thm vo mt module module module1v g vo trong mt
khai bo bin nh sau:
Publicsolanchienthang AsInteger
S dng bin ny trong th tc Button1_Click nh sau:
PrivateSubButton1_Click(ByValsender As
System.Object, _
ByVale AsSystem.EventArgs) HandlesButton1.Click
PictureBox1.Visible = False
Label1.Text = CStr(Int(Rnd() * 10))
Label2.Text = CStr(Int(Rnd() * 10))
Label3.Text = CStr(Int(Rnd() * 10))
If(Label1.Text = "7") Or(Label2.Text = "7") _
Or(Label3.Text = "7") Then
PictureBox1.Visible = True
Beep()
solanchienthang += 1
Label5.Text = "Wins: "& solanchienthang
EndIf
EndSubDng hm Randomize()trong s kin Form_Load nh v d trc.
8/13/2019 Bi ging LTQL_2012
81/189
8/13/2019 Bi ging LTQL_2012
82/189
Bi ging Lp trnh qun l 2012
82
Function_statements()
[Return value]
EndFunction
Trong :
- FunctionName: tn hm,
- As Type: nh ngha kiu d liutr v ca hm sau khi tnh ton xong
- Argument: