Bài giảng: Visual Basic 6.0
M
M
Mụ
ụ
ụ
ục
c
c
cl
l
l
lụ
ụ
ụ
ục
c
c
c 1
1
1
1
2
2
2
2L
L
L
9
9
9
9
2.1Xâydựngứngdụngbanđầu 9
2.1.1Viếtứngdụngbanđầu 9
2.1.2XâydựngtínhnăngCalendar 9
2.1.3ThêmtínhnăngClock 11
2.2CáctínhnăngmớitrongVisualbasic6.0 11
2.2.1KháiquátvắntắtvềVisualbasic6.0 11
2.2.2Khaithácthếmạnhcủacácđiềukhiểnmởrộng 12
2.3LàmviệcvớimôitrườnglậptrìnhtrongVisualbasic 12
2.3.1TìmhiểucácphầncủaIDE 12
2.3.2ThêmvàxoácácthanhcôngcụtrongIDEcủaVisualbasic 13
2.3.3Thêmcácđiềukhiểnvàohộpcôngcụ 14
2.3.4Địnhhướngthôngquacửasổformvàcode 14
2.3.5Quảnlýứngdụngvớiprojectexplorer 14
2.3.6Cửasổproperties 14
2.3.7HiểnthịIDE 14
2.3.8Trợgiúp 15
3
3
3
3T
T
T
Tì
ì
ì
ìm
3.1.3Phươngthức 17
3.1.4Sựkiện 18
3.1.5Mốiquanhệgiữaphươngthức,thuộctínhvàsựkiện 18
3.1.6CửasổProperties 19
3.1.7Viếtchươngtrìnhsửdụngthuộctính,phươngthứcvàsựkiện 20
3.2Làmviệcvớimộtđềán 24
3.2.1Địnhnghĩa 24
3.2.2CửasổProjectExplorer 25
3.2.3Tạođềán 25
3.2.4Đổithuộctínhđềán 25
3.2.5Lưuvàđặttênđềán 26
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:2/260
3.2.6Mởđềáncósẵn 26
3.2.7Thêmxoávàlưutậptintrongđềán 27
3.2.8Thêmđiềukhiểnvàođềán 29
3.2.9TạotệptinEXE 30
3.2.10Sửađổithuộctínhđềán 31
3.3Làmviệcvớinhiềuđềán 32
3.3.1SửdụngProjectGroup 32
3.3.2Thêmđềánvàonhómđềán 32
3.3.3Xoáđềántrongnhómđềán 33
4
4
4
4L
L
L
Là
à
c
cđ
đ
đ
đi
i
i
iề
ề
ề
ều
u
u
ukhi
khi
khi
khiể
ể
ể
ển
n
n
n 34
34
34
34
4.1Cácloạiđiềukhiển 34
n
n
nl
l
l
lậ
ậ
ậ
ập
p
p
ptr
tr
tr
trì
ì
ì
ình
nh
nh
nh 41
41
41
41
5.1Chuẩnlậptrình(Codingconvention) 41
5.1.1Codingconventions 41
5.1.2Formdesignstandard 46
L
Lậ
ậ
ậ
ập
p
p
ptr
tr
tr
trì
ì
ì
ình
nh
nh
nhx
x
x
xử
ử
ử
ửl
l
l
lý
ý
ý
ýgiao
giao
6.5.1sựkiệnchuột 70
6.5.2Hiệuchỉnhcontrỏchuột 70
6.5.3Sựkiệnbànphím 70
7
7
7
7X
X
X
Xử
ử
ử
ửl
l
l
lý
ý
ý
ýt
t
t
tậ
ậ
ậ
ập
p
p
ptin
tin
tin
d
dụ
ụ
ụ
ụng
ng
ng
ngDLL
DLL
DLL
DLLv
v
v
và
à
à
àWindows
Windows
Windows
WindowsAPI
API
API
API 78
78
78
78
8.1DLLvàcấutrúccủaWindows 78
ú
ú
úp
p
p
pv
v
v
và
à
à
ào
o
o
oứ
ứ
ứ
ứng
ng
ng
ngd
d
d
dụ
ụ
ụ
ụng
ng
ng
ng
ì
ì
ình
nh
nh
nhh
h
h
hướ
ướ
ướ
ướng
ng
ng
ngđố
đố
đố
đối
i
i
it
t
t
tượ
ượ
ượ
ượng
ng
ng
ng
11C
C
C
Cô
ô
ô
ông
ng
ng
ngc
c
c
cụ
ụ
ụ
ụtrong
trong
trong
trongVB6
VB6
VB6
VB6 120
120
120
120
11.1ADD-INS 120
11.2CáccôngcụtrongADD-INS 120
khá
á
á
ái
i
i
ini
ni
ni
niệ
ệ
ệ
ệm
m
m
mc
c
c
cơ
ơ
ơ
ơb
b
b
bả
ả
ả
ản
n
n
12.4Sửdụngđiềukhiểndữliệuđểtạogiaodiệnngườisửdụng 147
12.4.1Kếtnốivớimộtcơsởdữliệuvàlàmviệcvớicácmẩutin 148
12.4.2Tạomộtgiaodiệnngườisửdụngcơbản 150
12.4.3ThaotáctrêncácmẩutinthôngquađiềukhiểnADOData 151
12.4.4CácthuộctínhquantrọngkháccủađiềukhiểnADODATA 155
12.5Tổngkết 156
12.6HỏivàĐáp 157
13
13
13
13C
C
C
Cá
á
á
ác
c
c
cđố
đố
đố
đối
i
i
it
t
t
tượ
ượ
u
u 158
158
158
158
13.1SửdụngmôhìnhđốitượngDAO 158
13.1.1Lậptrìnhvớiđốitượng 160
13.1.2SửdụngđiềukhiểnDAOData 160
13.1.3SửdụngthuộctínhConnectcủađiềukhiểnDAODatađểtruycậpnguồn
dữliệubênngoài 160
13.2SửdụngDAOđểlàmviệcvớidữliệu 161
13.2.1DùngđốitượngDataBaseđểkếtnốivớimộtCSDL 161
13.2.2SửdụngđốitượngRecordset 162
13.2.3ChỉracáctuỳchọnchoRecordset 163
13.3SửdụngđốitượngFieldđểthaotácvớicáctrường 163
13.4SửdụngcácphươngthứcduyệtvớiđốitượngRecorset 164
13.4.1SửdụngBOFvàEOFđểduyệtquaRecordset 164
13.4.2DùngBOFvàEOFđểxácđịnhmộtRecordsetcórỗnghaykhông 164
13.4.3DùngthuộctínhRecordCoutđểxácđịnhsốmẩutintrongmộtrecordset
165
13.4.4DùngphươngthứcEditđểsửađổigiátrịtrongmộtmẩutin 165
13.4.5SửdụngphươngthứcAddNewvàUpdateđểtạomẩutinmới 166
13.4.6SửdụngAppendChunkđểnốidữliệuvàomộttrườngnhịphân 167
13.4.7SửdụngphươngthứcCloseđểđóngRecordset 168
13.5TìmkiếmdữliệutrongRecordsetvàbảng 168
13.5.1SửdụngphươngthứcFindđểđịnhvịmẩutintrongmộtrecordset 168
13.5.2SửdụngphươngthứcSeekđểthihànhtìmkiếmtheochỉmục 169
ập
p
p
pb
b
b
bá
á
á
áo
o
o
oc
c
c
cá
á
á
áo
o
o
ov
v
v
và
à
à
àXu
Xu
Xu
14.3SửdụngCrystalreportđểlậpbáocáo 190
14.3.1CàiđặtCrystalReports 190
14.3.2DùngCrystalReportstạobáocáo 191
14.3.3ThihànhbáocáotrongứngdụngvớiđiềukhiểnActiveXcủaCrystal
Reports193
14.3.4SửdụngbảnmớihơncủaCrystalReports 193
15
15
15
15ODBC
ODBC
ODBC
ODBCv
v
v
và
à
à
àc
c
c
cá
á
á
ác
c
c
cđố
đố
đố
từ
ừ
ừ
ừxa
xa
xa
xa 194
194
194
194
15.1ĐịnhcấuhìnhvàsửdụngODBC 194
15.1.1KiếntrúccủaODBC 194
15.1.2Tạonguồndữliệu 194
15.1.3TruycậpnguồndữliệuvớiđiềukhiểnDAODATAvàODBCDIRECT.
197
15.2Truycậpdữliệudùngđiềukhiểndữliệutừxa 198
15.2.1SửdụngRDC 198
15.3SửdụngRDOtrongchươngtrình 199
15.3.1QuyđịnhthuộctínhbộmáycơsởdữliệudùngđốitượngRDOENGINE.
200
15.3.2TruycậpmôitrườngđốitượngrdoEnvironment 200
15.3.3ThiếtlậpkếtnốidùngđốitượngrdoConnection 201
15.3.4ĐápứngsựkiệntrongRDO 203
15.4TạokếtnốIvớitrìnhthiếtkếuerconnecttion 204
15.5TruycậptruyvấnvớitrìngthiếtkếUserConnection 206
15.5.1GọithủtụcchứasẵntrongmộttrìnhthiếtkếUserConnection 206
VisualBasic6.0TrịnhKhắcThanh
ở
ở
ởd
d
d
dữ
ữ
ữ
ữli
li
li
liệ
ệ
ệ
ệu
u
u
uv
v
v
vớ
ớ
ớ
ới
i
i
il
l
l
lớ
cậ
ậ
ậ
ập
p
p
pd
d
d
dữ
ữ
ữ
ữli
li
li
liệ
ệ
ệ
ệu
u
u
ut
t
t
từ
ừ
ừ
ừxa
xa
xa
d
dữ
ữ
ữ
ữli
li
li
liệ
ệ
ệ
ệu
u
u
uActiveX
ActiveX
ActiveX
ActiveX 252
252
252
252
18.1XâydựngứngdụngVisualbasicvớiADO 252
18.1.1TìmhiểucấutrúcOLEDB/ADO 252
18.1.2CàiđặtvàthiếtlậpthamchiếuđếnADOtrongứngdụngVisualbasic 253
18.1.3SửdụngADOvớicácthưviệnđốitượngtruycậpdữliệukhác 254
18.1.4DùngđốitượngconnectioncủaADOđểkếtnốivớinguồndữliệu 254
18.1.5Làmviệcvớicontrỏ 255
18.1.6KhoábảnghitrongADO 257
visual
visual
visualbasic
basic
basic
basic6.0
6.0
6.0
6.0
2.1
2.1
2.1
2.1X
X
X
Xâ
â
â
ây
y
y
yd
d
d
dự
ự
ự
ựng
ng
ng
Vi
Viế
ế
ế
ết
t
t
tứ
ứ
ứ
ứng
ng
ng
ngd
d
d
dụ
ụ
ụ
ụng
ng
ng
ngban
ban
ban
banđầ
đầ
đầ
đầu
u
d
dự
ự
ự
ựng
ng
ng
ngt
t
t
tí
í
í
ính
nh
nh
nhn
n
n
nă
ă
ă
ăng
ng
ng
ngCalendar
Calendar
Calendar
Calendar
Bâygiờtabắtđầuxâydựngcáctínhnăngcủaứngdụng.Đầutiên,tacầnmộtlịch
chươngtrìnhchạytrênInternet.TacóthểdùngVisualbasicđểtựtạocácđiềukhiển
ActivateX.Phầnnàysẽđượctrìnhbàytrongmộtriêng.
Đếnđâyđiềukhiểnlịchđượcnạpvàothanhcôngcụ.Tênchínhthứccủanólà
điềukhiểnActivateXMonthView.
Kếtiếptađưađiềukhiểnvàobiểumẫu.
Th
Th
Th
Thê
ê
ê
êm
m
m
mđ
đ
đ
đi
i
i
iề
ề
ề
ều
u
u
ukhi
khi
khi
khiể
ẫ
ẫ
ẫu
u
u
u
ChọnbiểutượngđiềukhiểnMonthViewtừhộpcôngcụ
Nhấnđúpchuộtlênbiểutượngđiềukhiểnđểđưanóvàobiểumẫu.
BạnvừatạoxongchươngtrìnhnhấnF5đểchạy.
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:11/260
2.1.3
2.1.3
2.1.3
2.1.3Th
Th
Th
Thê
ê
ê
êm
m
m
mt
t
t
tí
í
í
ính
v
v
và
à
à
ào
o
o
oứ
ứ
ứ
ứng
ng
ng
ngd
d
d
dụ
ụ
ụ
ụng
ng
ng
ng
Chọnvàobiểutượngtronghộpcôngcụ
NhấnchuộtlênđiềukhiểnTimertrênhộpcôngcụđểđưanóvàobiểumẫu.
ĐểhiểnthịthờigiantalậptrìnhđiềukhiểnTimer.TadùngthuộctínhIntervalcủa
timerđểquyđịnhviệcđếmthờigian.MộtđơnvịcủaIntervallà1/1000giây.Dođó,
đểquyđinhnhịpđếmlànửagiâytađặtIntervallà500.Cứmỗinửagiâychươngtrình
sẽlàmmộtviệcgìđó.Ởđây,tamuốnhiểnthịthờigianhiệnhành.Tasẽdùngnhãn
t
tụ
ụ
ụ
ục
c
c
cs
s
s
sự
ự
ự
ựki
ki
ki
kiệ
ệ
ệ
ện
n
n
nl
l
l
là
à
à
àg
g
ct
t
t
tí
í
í
ính
nh
nh
nhn
n
n
nă
ă
ă
ăng
ng
ng
ngm
m
m
mớ
ớ
ớ
ới
i
i
itrong
trong
trong
t
tv
v
v
vắ
ắ
ắ
ắn
n
n
nt
t
t
tắ
ắ
ắ
ắt
t
t
tv
v
v
về
ề
ề
ềVisual
Visual
Visual
Visualbasic
basic
c
c
cth
th
th
thế
ế
ế
ếm
m
m
mạ
ạ
ạ
ạnh
nh
nh
nhc
c
c
củ
ủ
ủ
ủa
a
a
ac
c
c
cá
ở
ở
ởr
r
r
rộ
ộ
ộ
ộng
ng
ng
ng
2.2.2.1
2.2.2.1
2.2.2.1
2.2.2.1s
s
s
sự
ự
ự
ựki
ki
ki
kiệ
ệ
ệ
ện
n
n
CausesValidation
PhầnmởrộngđầutiênliênquanđếntấtcảcácđiềukhiểnActivateXcơbảnlà
việcthêmvàosựkiệnValidatevàthuộctínhCausesValidation.Trướccácphiênbản
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:12/260
Visualbasic6,nếubạnkiểmtratínhhợplệcủamộttừnhậpvàohộpvănbản,bạn
phảiviếtthủtụcsựkiệnLostForcuscủaTextBox.Nếunhậpsaibạnphảigọiphương
thứcSetForcusđểbuộcngườidùngnhậplạidữliệuđúng.Thỉnhthoảnglogiccủalập
trìnhnàylàmngườidùngkhóchịukhihọkhôngbaogiờnhậpđúngdữliệu,họcóthể
bịkhoáchặtởđiềukhiểnđóhọcũngcũngkhôngnhấncảnúthelpđểxemhướngdẫn
chitiết.SựkiệnValidatevàthuộctínhCausesValidationgiảiquyếtvấnđềđó.
2.2.2.2
2.2.2.2
2.2.2.2
2.2.2.2C
C
C
Cá
á
á
ác
c
c
cc
c
c
cả
ả
ả
ải
l
l
là
à
à
àm
m
m
mứ
ứ
ứ
ứng
ng
ng
ngd
d
d
dụ
ụ
ụ
ụng
ng
ng
ngth
th
th
thê
ê
ê
êm
y
yth
th
th
thá
á
á
áng
ng
ng
ngv
v
v
vớ
ớ
ớ
ới
i
i
iđ
đ
đ
đi
i
i
iề
ề
ề
ều
u
2.3
2.3
2.3L
L
L
Là
à
à
àm
m
m
mvi
vi
vi
việ
ệ
ệ
ệc
c
c
cv
v
v
vớ
ớ
ớ
ới
i
i
im
ì
ì
ình
nh
nh
nhtrong
trong
trong
trongVisual
Visual
Visual
Visualbasic
basic
basic
basic
2.3.1
2.3.1
2.3.1
2.3.1T
T
T
Tì
ì
ì
ìm
m
m
mhi
hi
hi
ủa
a
a
aIDE
IDE
IDE
IDE
IDElàtênviếttắtcủamôitrườngpháttriểntíchhợp(InegreatedDevelopment
Enviroment).IDElànơitạoracácchươngtrìnhVB.
IDEcủaVBlànơitậptrungcácmenu,thanhcôngcụvàcửasổđểtạorachương
trình.MỗiphầncủaIDEcócáctínhnănganhehưởngđếncáchoạtđộnglậptrình
khácnhau.Thanhmenuchophépbạntácđộngcũngnhưquảnlýtrựctiếptrêntoàn
bộứngdụng.Thanhcôngcụchophéptruycậpcácchứcnăngcủathanhmenuqua
cácnúttrênthanhcôngcụ.
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:13/260
Cácbiểumẫu(Form)-khốixâydựngcácchươngtrìnhVisualbasic-xuấthiện
trongcửasổform.Hộpcôngcụđểthêmcácđiềukhiểnvàocácbiểumẫucủađềán.
Projectexplorerhiểnthịcácđềánmàbạnđanglàmcũngnhưcácthànhphầncủacác
đềán.Bạnduyệtvàcàiđặtcácthuộctínhcủađiềukhiển,biểumẫuvàmoduletrong
cửasổproperty.Cuốicùng,bạnbốtrívàxemxétmộthoặcnhiềubiểumẫutrênmàn
hìnhthôngquacửasổformlayout.
2.3.2
2.3.2
2.3.2
2.3.2Th
Th
Th
Thê
ê
c
cô
ô
ô
ông
ng
ng
ngc
c
c
cụ
ụ
ụ
ụtrong
trong
trong
trongIDE
IDE
IDE
IDEc
c
c
củ
ủ
ủ
ủa
a
a
aVisual
Visual
c
cô
ô
ô
ông
ng
ng
ngc
c
c
cụ
ụ
ụ
ụdebug:
debug:
debug:
debug:Thanhcôngcụdebugdùngđểkiểmtrachương
trìnhvàgiảiquyếtcáclỗicóthểxảyra.Khigỡrốichươngtrình,talàmmộtsốviệc
nhưchạytừngdònglệnhchươngtrình,kiểmtragiátrịcácbiến,vàdừngchươngtrình
tạimộtđiểmnghingờhoặcdướinhữngđiềukiệnnàođó.
S
S
S
Sử
ử
ử
ửd
d
d
dụ
tựđộnghoàntấttừkhoá.TínhnăngCompleteWordrấthữuíchđểtránhcáclỗicú
pháp.
S
S
S
Sử
ử
ử
ửd
d
d
dụ
ụ
ụ
ụng
ng
ng
ngthanh
thanh
thanh
thanhc
c
c
cô
ô
ô
ông
ng
ng
ngc
ng
ngthanh
thanh
thanh
thanhc
c
c
cô
ô
ô
ông
ng
ng
ngc
c
c
cụ
ụ
ụ
ụchu
chu
chu
chuẩ
ẩ
ẩ
ẩn(Standard):
n(Standard):
n(Standard):
n(Standard):Làthanhcôngcụtrọngyếutrong
IDE.Thanhcôngcụchuẩncungcấpnhiềutínhnăngtrongmenufile,
á
ác
c
c
cđ
đ
đ
đi
i
i
iề
ề
ề
ều
u
u
ukhi
khi
khi
khiể
ể
ể
ển
n
n
nv
v
v
và
à
bằngcáchchọncácđiềukhiểntừhộpcôngcụvàđưachúngvàocácbiểumẫu.
MộtsốđiềukhiểncósẵntrongVisualbasicvàkhôngthểgỡbỏkhỏihộpcôngcụ.
MộtsốkhácnằmbênngoàiVisualbasicvàchứatrongcáctậptinmàcóphầnmởrộng
là.ocx.Cácđiềukhiểnnàycóthểđượcthêmvàohoặcgỡbỏkhỏithanhcôngcụ.
ChúngtasẽtrởlạichitiếtvềcácloạiđiềukhiểntrongVisualbasictrongmột
chươngriêng.
2.3.4
2.3.4
2.3.4
2.3.4Đị
Đị
Đị
Định
nh
nh
nhh
h
h
hướ
ướ
ướ
ướng
ng
ng
ngth
th
th
thô
ô
ô
àcode
code
code
code
Nếuđiềukhiểnlànhữngkhốibêtôngmàtatậphợptrongứngdụngthìbiểumẫu
lànềnmóngđểtaxâydựngcáckhốinày.
CácbiểumẫuchứatrongcửasổThiếtkếbiểumẫu.Tasẽlàmviệctrongcửasổ
nàyđểthêmcácđiềukhiểnvàobiểumẫu.
Đốivớitừngcửasổthiếtkếmẫu,tacũngcóthểmởcửasổcode.Cửasổcodelà
nơitaviếtcácđoạnchươngtrìnhchạybêndướibiểumẫu.Tacóthểmởcửasổcode
bằngcáchnhấnđúplênbiểumẫuhoặcđiềukhiển,hoặcchọncodetừmenu.
2.3.5
2.3.5
2.3.5
2.3.5Qu
Qu
Qu
Quả
ả
ả
ản
n
n
nl
l
l
lý
ý
ý
ýứ
ProjectexplorertrongVisualbasicgiúpquảnlývàđịnhhướngnhiềuđềán.
Visualbasicchophéptổchứcnhiềuđềántrongmộtnhómgọilàprojectgroup.Tacó
thểlưutậphợpcácđềántrongVisualbasicthànhmộttậptinnhómđềán.Cáctậptin
nàycóphầnmởrộnglà.vbg.
2.3.6
2.3.6
2.3.6
2.3.6C
C
C
Cử
ử
ử
ửa
a
a
as
s
s
sổ
ổ
ổ
ổproperties
properties
properties
properties
Mỗithuộctínhcómộthoặcnhiềugiátrị.Cửasổpropertiesgiúpbạnxemsửađổi
vàđiềukhiểncácthuộctínhcủacácđiềukhiểnActivateXtrongchươngtrình.
2.3.7
2.3.7
ể
ể
ển
n
n
nđổ
đổ
đổ
đổi
i
i
it
t
t
từ
ừ
ừ
ừhi
hi
hi
hiể
ể
ể
ển
n
n
nth
th
th
thị
gi
giú
ú
ú
úp
p
p
p
KhôngnhữnglàmchủngônngữlậptrìnhVisualbasic,bạncũngcầnphảisửdụng
thuầnthụcmôitrườngVisualbasiccũngnhưhiểucácthôngđiệpmàVisualbasicgửi
ra.Microsoftcungcấpmộttrongnhữnghệthốngtrợgiúptốtnhấtchocáccôngcụ
pháttriểnứngdụng.
Tr
Tr
Tr
Trợ
ợ
ợ
ợgi
gi
gi
giú
ú
ú
úp
p
p
pnh
nh
nh
nh
TạimộtvịtríbấtkỳtrongVisualbasic,bạnnhấnphímF1,núttrợgiúp.Nósẽ
kíchhoạthệthốngtrợgiúpcủaVisualbasic,nơicóthểgiảithíchhoặcđưaranhững
lờikhuyên,cũngnhưcácđoạnchươngtrìnhmẫu.
VisualbasiccóhệthốngtrợgiúplàhệthôngthưviệnMSDNđượcsửdụngrộng
rãichocáccôngcụpháttriểncủaMicrosoftđểcungcấptruycậpđếnsổtayhướng
dẫnsửdụngsảnphẩmtrựctuyến.
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:16/260
3
3
3
3T
T
T
Tì
ì
ì
ìm
m
m
mhi
hi
hi
hiể
ể
ể
ểu
u
u
nh
nhph
ph
ph
phươ
ươ
ươ
ương
ng
ng
ngth
th
th
thứ
ứ
ứ
ức
c
c
cv
v
v
và
à
à
às
s
s
sự
ự
TrongVB,đốitượnglànhữngthànhphầntạonêngiaodiệngiữangườisửdụng
choứngdụng.Cácđiềukhiểnlànhữngđốitượng.Nhữngnơichứa(container)như
biểumẫu(form),khung(frame),gayhộpảnh(picturebox)cũnglàmộtđốitượng.
VB6hỗtrợmộtcáchlậptrìnhtươngđốimới,lậptrìnhhướngđốitượng(Object
OrientedProgramming).
Tronglậptrìnhcổđiển,tacókiểulậptrìnhtheocấutrúc.Nếunhưứngdụngđược
thiếtkếđểgiảiquyếtmộtvấnđềlớn,thìlậptrìnhviêncóthểchiathànhnhiềuvấnđề
nhỏvàviếtcácđoạnchươngtrìnhnhỏđểgiảiquyếtriêngtừngcái.
Vớilậptrìnhhướngđốitượng,lậptrìnhviênsẽchianhỏvấnđềcầngiải
quyếtthànhcácđốitượng.Từngđốitượngsẽcóđờisốngriêngcủanó.Nócócácđặc
điểmmàtagọilàthuọcctínhvànhữngchứcnăngriêngbiệtmàtagọilàphươngthức.
lậptrìnhviêncầnđưaracácthuộctínhvàphơưngthứcmàcácđốitượngcầnthểhiện.
3.1.2
3.1.2
3.1.2
3.1.2Thu
Thu
Thu
Thuộ
ộ
ộ
ộc
c
c
ct
t
t
tí
í
í
nh
nhGi
Gi
Gi
Giả
ả
ả
ải
i
i
ith
th
th
thí
í
í
ích
ch
ch
ch
LeftVịtrícạnhtráicủađiềukhiểnsovớivậtchứanó
TopVịtrícạnhtrêncủađiềukhiểnsovớivậtchứanó
HieghtChiềucaocủađiềukhiển
WidthChiềurộngcủađiềukhiển
NameMộtgiátrịchuỗiđượcdùngđểnóiđếnđiềukhiển
EnableGiátrịlogic(TruehoặcFalse)quyếtđịnhngườisửdụngcóđược
làmviệcvớiđiềukhiểnhaykhông
VisibleGiátrịlogic(TruehoặcFalse)quyếtđịnhngườisửdụngcóthấy
điềukhiểnhaykhông
MộtthuộctínhquantrọngkháclàBorderStyle,quyếtđịnhcácthànhphầncủacửa
ng
ngtr
tr
tr
trê
ê
ê
ên
n
n
nbi
bi
bi
biể
ể
ể
ểu
u
u
um
m
m
mẫ
ẫ
ẫ
ẫu
u
u
u
0–NoneKhôngcócạnhviền,khôngthanhtiêuđề,khôngđượcdi
ương
ng
ng
ngth
th
th
thứ
ứ
ứ
ức
c
c
c
Lànhữngđoạnchươngtrìnhchứatrongđiềukhiển,chođiềukhiểnbiếtcáchthức
đểthựchiệnmộtcôngviệcnàođó,chảnghạndờiđiềukhiểnđếnmộtvịtrímớitrên
biểumẫu.Tươngtựthuộctính,mỗiđiềukhiểncónhữngphươngthứckhácnhau,
nhưngvẫncómộtsốphươngthứcrấtthôngdụngchohầuhếtcácđiềukhiển
Cácphươngthứcthôngdụng
Ph
Ph
Ph
Phươ
ươ
ươ
ương
ng
ng
ngth
th
th
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:18/260
3.1.4
3.1.4
3.1.4
3.1.4S
S
S
Sự
ự
ự
ựki
ki
ki
kiệ
ệ
ệ
ện
n
n
n
Nếunhưthuộctínhmôtảđốitượng,phươngthứcchỉracáchthứcđốitượnghành
độngthìsựkiệnlànhữngphảnưúngcủađốitượng.
Tươngtựthuộctínhvàphươngthức,mỗiđiềukhiểncónhữngbộsựkiệnrất
thôngdụngvớihầuhếtcácđiềukhiển.Cácsựkiệnnàyxảyrathườnglàkếtquảcủa
mộthànhđộngnàođó,nhưlàdichuyểnchuột,nhấnnútbànphím,hiặcgõvàohộp
vănbản.kiểusựkiệnnàyđượcgọilàsựkiệnkhởitạobởingườisửdụng,vàtasẽ
phảilậptrìnhchochúng.
cácsựkiệnthôngdụng
S
ChangeNgườisửdụngsửađổichuỗikýtựtronghộpkếthợphoặchộpvăn
bản
ClickNgườisửdụngdùngchuộtclicklênđốitượng
DblclickNgườisửdụngdùngchuộtclickđúplênđốitượng
DragDropNgườisửdụngkéorêmộtđốitượngsangnơikhác
DragOverNgườisửdụngkéorêmộtđốitượngngangquamộtđiềukhiểnkhác
GotFocusĐưamộtđốitượngvàotầmngắmcủangườisửdụng
KeyDownNgườisửdụngnhấnmộtnúttrênbànphímtrongkhimộtđốitượng
đangtrongtầmngắm
KeyPressNgườisửdụngnhấnvàthảmộtnúttrênbànphímtrongkhimộtđối
tượngđangtrongtầmngắm
KeyUpNgườisửdụngthảmộtnúttrênbànphímtrongkhimộtđốitượng
đangtrongtầmngắm
LostFocusĐưamộtđốitượngrakhỏitầmngắm
MouseDownNgườisửdụngnhấnmộtnútchuộtbấtkỳtrongkhicontrỏchuột
đangnằmtrênmộtđốitượng
MouseMoveNgườisửdụngdichuyểncontrỏchuộtngangquamộtđốitượng
MouseUpNgườisửdụngthảnútchuộttrongkhicontrỏchuộtđangnằmtrên
mộtđốitượng
3.1.5
3.1.5
3.1.5
3.1.5M
M
M
Mố
ố
ố
ối
i
th
thứ
ứ
ứ
ức,
c,
c,
c,thu
thu
thu
thuộ
ộ
ộ
ộc
c
c
ct
t
t
tí
í
í
ính
nh
nh
nhv
v
v
và
à
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:19/260
Mộtvídụkhác,làmmộtbiểumẫuxuấthiệnvàbiếnmấttrênmànhình
c.thuộctính
‘xuấthiện
frmMyForm.Visible=True
‘Biếnmất
frmMyForm.Visible=False
d.phươngthức
‘xuấthiện
frmMyForm.Show
‘Biếnmất
frmMyForm.Hide
3.1.6
3.1.6
3.1.6
3.1.6C
C
C
Cử
ử
ử
ửa
a
a
as
s
s
sổ
ổ
Viế
ế
ế
ết
t
t
tch
ch
ch
chươ
ươ
ươ
ương
ng
ng
ngtr
tr
tr
trì
ì
ì
ình
nh
nh
nhs
s
s
sử
ử
ử
phươ
ươ
ươ
ương
ng
ng
ngth
th
th
thứ
ứ
ứ
ức
c
c
cv
v
v
và
à
à
às
s
s
sự
ự
ự
ự
ki
ki
oGUI
GUI
GUI
GUI
1.từmenuFile,chọnNewProjectđểmởhộpthoạiđềán.Chọnkiểu
standardEXE
2.vàocửasổProperties,sửatênbiểumẫuthànhfrmMove
3.thêm4nútlệnhvào4gócbiểumẫu.tasẽxửalạivịtríchínhxác
hiưnchođíngbằngchươngtrình
4.nhấnđúpchuộtlênbiểmẫuđểtạothủtụcForm_Load()
5.ĐổithuộctínhBorderStylecủabiểumẫuthành1-FixedSingleđể
cấmbiểumẫucogiãnkhichươngtrìnhthihành.sauđóđổicác
thuộctínhAlignmentcủanhãnthành2-CentervàBorderStylecủa
nhãnthành1-FixedSingle
6.LưubiểumẫuvớitênlàfrmmovevàlưuđềánvớitênlàMovelt.vbp
3.1.7.2
3.1.7.2
3.1.7.2
3.1.7.2Vi
Vi
Vi
Viế
ế
ế
ết
t
t
tth
th
th
cmdTopRight.Caption="TopRight"
cmdBottomLeft.Caption="BottomLeft"
cmdBottomRight.Caption="BottomRight"
'Cleartheinitialtextofthelabel
lblNotify.Caption=""
'Settheform'stitlebartext
frmMove.Caption="MoveIt"
'Therestofthecodecenterstheformonthe
'screen,setsthepositionofthefour
'CommandButtons,andsetsthesizeand
'positionofthelabel.
'Centertheformonthescreen.Thisworksby
'settingtheLeftsideoftheformtothecenter
'ofthescreen,lesshalfthewidthoftheform.
'Also,theTopoftheformissettothecenter
'ofthescreen,lesshalftheheightoftheform.
frmMove.Left=(Screen.Width-frmMove.Width)/2
frmMove.Top=(Screen.Height-frmMove.Height)/2
'SettheLeftedgeofthebuttons.The200setting
'fortheleftbuttonssetsaspacebetweentheedge
'oftheformandthebuttons.Therightbuttonsare
'setbysubtractingthewidthofthebuttonfrom
'thewidthoftheform,andsubtracting300to
'setaspacebetweenthebuttonandtheformedge.
cmdTopLeft.Left=200
cmdBottomLeft.Left=200
cmdTopRight.Left=frmMove.Width-cmdTopRight.Width-300
cmdBottomRight.Left=frmMove.Width-cmdBottomRight.Width-300
'SettheTopedgeofthebuttons.Thisisdone
'similartosettingtheLeftedge.
ủ
ủ
ủt
t
t
tụ
ụ
ụ
ục
c
c
cClick
Click
Click
Click
Dùngthủtụcnàyđểdichuyểnbiểumẫuxungquanhmànhình.Nhấnđúpchuột
lênnútlệnhđểmởcửasổCode.Đưavàođoạnchươngtrìnhsauđay:
PrivateSubcmdBottomLeft_Click()
'Setthevalueoftheform'sTOPproperty
'tothebottomofthescreenbutbring
'ituptheheightofthescreensothatthe
'bottomoftheformisonthebottomof
'thescreen
frmMove.Top=Screen.Height-frmMove.Height
'Setthevalueoftheform'sLEFTproperty
'totheleftmostofthescreen.
frmMove.Left=0
EndSub
PrivateSubcmdBottomRight_Click()
'Setthevaluefortheform'sTOPpropertyto
frmMove.Left=Screen.Width-frmMove.Width
EndSub
ĐốitượngScreensửtrongđoạnchươngtrìnhtrênlàmànhình
ViệcdichuyểnbiểumẫulêntrênhoặcsangtráichỉcầnđổithuộctínhTophay
Leftthành0.Giátrịnàyluônđúngchocạnhtrênhaycạnhtráimànhình.
CạnhphảihoặccạnhdướiphứctạphơnvìkhôngcóthuộctínhRighthayBottom.
ĐểcanhphảibiểumẫutaphảithayđổithuộctinhLeftthôngquathuộctínhWidth
TươngtựvớicạnhdướitaphảithayđổithuộctinhTopthôngquathuộctính
Height
3.1.7.4
3.1.7.4
3.1.7.4
3.1.7.4Th
Th
Th
Thê
ê
ê
êm
m
m
mth
th
th
thô
ô
ô
ông
ng
ng
MởcửasổCode,chọnsựkiệnMouseDownđểmởthủtụcvàđưavàođoạn
chươngtrìnhsau
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,
YAsSingle)
lblNotify.Caption="MouseDownEvent"
EndSub
VisualBasic6.0TrịnhKhắcThanh
http://www.minset.tkTrang:24/260
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,Y
AsSingle)
lblNotify.Caption="MouseUpEvent"
EndSub
PrivateSubcmdBottomLeft_GotFocus()
lblNotify.Caption="cmdBottomLefthastheFocus"
EndSub
PrivateSubcmdBottomRight_GotFocus()
lblNotify.Caption="cmdBottomRighthastheFocus"
EndSub
PrivateSubcmdTopLeft_GotFocus()
lblNotify.Caption="cmdTopLefthastheFocus"
EndSub
PrivateSubcmdTopRight_GotFocus()
lblNotify.Caption="cmdTopRighthastheFocus"
EndSub
3.2
3.2
3.2
3.2L
L
L
ột
t
t
tđề
đề
đề
đềá
á
á
án
n
n
n
3.2.1
3.2.1
3.2.1
3.2.1Đị
Đị
Đị
Định
nh
nh
nhngh
ngh
ngh
nghĩ
ĩ
ĩ
ĩa
a