Giáo trình Lập trình căn bản Visual Basic (Phần 2)

1. Lệnh rẽ nhánh

1.1. Lệnh If

o Một dòng lệnh:

If <điều kiện=""> Then

o Nhiều dòng lệnh:

If <điều kiện=""> Then

Các dòng lệnh

End If

Ý nghĩa câu lệnh:

Các dòng lệnh hay dòng lệnh sẽ được thi hành nếu như điều kiện là đúng. Còn nếu như

điều kiện là sai thì câu lệnh tiếp theo sau cấu trúc If . Then được thi hành.

o Dạng đầy đủ: If . Then . Else

If <điều kiện="" 1=""> Then

[Khối lệnh 1]

ElseIf <điều kiện="" 2=""> Then

[Khối lệnh 2].

[Else

[Khối lệnh n]]

End If

VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi

hành. Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được thi

hành.

Ví dụ:

If (TheColorYouLike = vbRed) Then

MsgBox "You are a lucky person"

ElseIf (TheColorYouLike = vbGreen) Then

MsgBox "You are a hopeful person"

ElseIf (TheColorYouLike = vbBlue) Then

MsgBox "You are a brave person"

ElseIf (TheColorYouLike = vbMagenta) Then

MsgBox "You are a sad person"

pdf 40 trang yennguyen 7220
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình căn bản Visual Basic (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Lập trình căn bản Visual Basic (Phần 2)

Giáo trình Lập trình căn bản Visual Basic (Phần 2)
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 26
Chương 4
Các lệnh và hàm cơ bản
1. Lệnh rẽ nhánh
1.1. Lệnh If
o Một dòng lệnh: 
If Then 
o Nhiều dòng lệnh: 
If Then 
Các dòng lệnh 
End If 
Ý nghĩa câu lệnh:
Các dòng lệnh hay dòng lệnh sẽ được thi hành nếu như điều kiện là đúng. Còn nếu như 
điều kiện là sai thì câu lệnh tiếp theo sau cấu trúc If ... Then được thi hành. 
o Dạng đầy đủ: If ... Then ... Else 
If Then 
[Khối lệnh 1] 
ElseIf Then 
[Khối lệnh 2]... 
[Else 
[Khối lệnh n]] 
End If 
VB sẽ kiểm tra các điều kiện, nếu điều kiện nào đúng thì khối lệnh tương ứng sẽ được thi 
hành. Ngược lại nếu không có điều kiện nào đúng thì khối lệnh sau từ khóa Else sẽ được thi 
hành. 
Ví dụ: 
If (TheColorYouLike = vbRed) Then 
MsgBox "You are a lucky person" 
ElseIf (TheColorYouLike = vbGreen) Then 
MsgBox "You are a hopeful person" 
ElseIf (TheColorYouLike = vbBlue) Then 
MsgBox "You are a brave person" 
ElseIf (TheColorYouLike = vbMagenta) Then 
MsgBox "You are a sad person" 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 27
Else 
MsgBox "You are an average person" 
End If 
1.2. Lệnh Select Case
Trong trường hợp có quá nhiều các điều kiện cần phải kiểm tra, nếu ta dùng cấu trúc rẽ 
nhánh IfThen thì đoạn lệnh không được trong sáng, khó kiểm tra, sửa đổi khi có sai sót. 
Ngược lại với cấu trúc SelectCase, biểu thức điều kiện sẽ được tính toán một lần vào đầu 
cấu trúc, sau đó VB sẽ so sánh kết quả với từng trường hợp (Case). Nếu bằng nó thi hành 
khối lệnh trong trường hợp (Case) đó. 
Select Case 
Case 
[Khối lệnh 1] 
Case 
[Khối lệnh 2] 
. 
. 
. 
[Case Else 
[Khối lệnh n]] 
End Select 
Mỗi danh sách kết quả biểu thức sẽ chứa một hoặc nhiều giá trị. Trong trường hợp có 
nhiều giá trị thì mỗi giá trị cách nhau bởi dấu phẩy (,). Nếu có nhiều Case cùng thỏa điều kiện 
thì khối lệnh của Case đầu tiên sẽ được thực hiện. 
Ví dụ của lệnh rẽ nhánh IfThen ở trên có thể viết như sau: 
Select Case TheColorYouLike 
Case vbRed 
MsgBox "You are a lucky person" 
Case vbGreen 
MsgBox "You are a hopeful person" 
Case vbBlue 
MsgBox "You are a brave person" 
Case vbMagenta 
MsgBox "You are a sad person" 
Case Else 
MsgBox "You are an average person" 
End Select 
Toán tử Is & To 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 28
Toán tử Is: Được dùng để so sánh với một biểu thức nào đó. 
Toán tử To: Dùng để xác lập miền giá trị của . 
Ví dụ: 
Select Case Tuoi 
Case Is <18 
MsgBox “Vi thanh nien” 
Case 18 To 30 
MsgBox “Ban da truong thanh, lo lap than di” 
Case 31 To 60 
MsgBox “Ban dang o lua tuoi trung nien” 
Case Else 
MsgBox “Ban da lon tuoi, nghi huu duoc roi day!” 
End Select 
Lưu ý: Trong ví dụ trên không thể viết Case Tuoi < 18. 
2. Lệnh lặp
Các cấu trúc lặp cho phép thi hành một khối lệnh nào đó nhiều lần. 
2.1. Lệnh For
2.1.1 For ... Next 
Đây là cấu trúc biết trước số lần lặp, ta dùng biến đếm tăng dần hoặc giảm dần để xác 
định số lần lặp. 
For = To [Step ] 
[khối lệnh] 
Next 
Biến đếm, giá trị đầu, giá trị cuối, bước nhảy là những giá trị số (Integer, Single,). 
Bước nhảy có thể là âm hoặc dương. Nếu bước nhảy là số âm thì giá trị đầu phải lớn hơn giá 
trị cuối, nếu không khối lệnh sẽ không được thi hành. 
Khi Step không được chỉ ra, VB sẽ dùng bước nhảy mặc định là một. 
Ví dụ: Đoạn lệnh sau đây sẽ hiển thị các kiểu chữ hiện có của máy bạn. 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 29
Private Sub Form_Click( ) 
Dim i As Integer 
For i = 0 To Screen.FontCount 
MsgBox Screen.Fonts(I) 
Next 
End Sub 
Ví dụ: Tính N! 
o Bước 1: Thiết kế chương trình có giao diện: 
Hình 4-1. Giao diện chương trình tính giai thừa
o Bước 2: Sự kiện Command1_Click được xử lý như sau:
Private Sub cmdTinh_Click()
 Dim i As Integer, gt As Long, n As Integer
 n = Val(txtSo.Text)
 gt = 1
 For i = 2 To n
 gt = gt * CLng(i)
 Next
 txtgt.Text = gt 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 30
End Sub
Lưu dự án và chạy chương trình ta được kết quả như hình trên.
2.1.2 For Each ... Next 
Tương tự vòng lặp For ... Next, nhưng nó lặp khối lệnh theo số phần tử của một tập các 
đối tượng hay một mảng thay vì theo số lần lặp xác định. Vòng lặp này tiện lợi khi ta không 
biết chính xác bao nhiêu phần tử trong tập hợp. 
For Each In 
Next 
Lưu ý: 
- Phần tử trong tập hợp chỉ có thể là biến Variant, biến Object, hoặc một đối tượng trong 
Object Browser. 
- Phần tử trong mảng chỉ có thể là biến Variant. 
- Không dùng For Each ... Next với mảng chứa kiểu tự định nghĩa vì Variant không chứa 
kiểu tự định nghĩa. 
2.2. Lệnh Do
Do ... Loop: Đây là cấu trúc lặp không xác định trước số lần lặp, trong đó, số lần lặp sẽ 
được quyết định bởi một biểu thức điều kiện. Biểu thức điều kiện phải có kết quả là True hoặc 
False. Cấu trúc này có 4 kiểu: 
Kiểu 1: 
Do While 
Loop 
Khối lệnh sẽ được thi hành đến khi nào điều kiện không còn đúng nữa. Do biểu thức điều 
kiện được kiểm tra trước khi thi hành khối lệnh, do đó có thể khối lệnh sẽ không được thực 
hiện một lần nào cả. 
Kiểu 2: 
Do 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 31
Loop While 
Khối lệnh sẽ được thực hiện, sau đó biểu thức điều kiện được kiểm tra, nếu điều kiện còn 
đúng thì, khối lệnh sẽ được thực hiện tiếp tục. Do biểu thức điều kiện được kiểm tra sau, do 
đó khối lệnh sẽ được thực hiện ít nhất một lần. 
Kiểu 3: 
Do Until 
Loop 
Cũng tương tự như cấu trúc Do While ... Loop nhưng khác biệt ở chỗ là khối lệnh sẽ 
được thi hành khi điều kiện còn sai. 
Kiểu 4: 
Do 
Loop Until 
Khối lệnh được thi hành trong khi điều kiện còn sai và có ít nhất là một lần lặp. 
Ví dụ: Đoạn lệnh dưới đây cho phép kiểm tra một số nguyên N có phải là số nguyên tố 
hay không? 
Dim i As Integer 
i = 2 
Do While (i <= Sqr(N)) And (N Mod i = 0) 
i = i + 1 
Loop 
If (i > Sqr(N)) And (N 1) Then 
MsgBox Str(N) & “ la so nguyen to” 
Else 
MsgBox Str(N) & “ khong la so nguyen to” 
End If 
Trong đó, hàm Sqr: hàm tính căn bậc hai của một số
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 32
2.3. Lệnh While
Tương tự vòng lặp Do...While, nhưng ta khôing thể thoát vòng lặp bằng lệnh Exit.
Vì vậy, vòng lặp kiểu này chỉ thoát khi biểu thức điều kiện sai.
While 
Wend
3. Các lệnh và hàm cơ bản
3.1. Lệnh End
Dùng để kết thúc chương trình
Cú pháp: End
3.2. Lệnh Exit
Để thoát khỏi cấu trúc ta dùng lệnh Exit, Exit for cho phép thoát khỏi vòng For, exit Do 
cho phép thoát khỏi vòng lặp Do, exit sub cho phép thoát khỏi Sub, exit function thoát khỏi 
Function.
Cú pháp: Exit For | Do|Sub|Function.
Ví dụ: Đây là ví dụ minh học một dạng thoát khỏi vòng lặp Do không điều kiện.
Do 
Exit Do
Loop
3.3. Lệnh Msgbox
MsgBox [, [, Tiêu đề]]
Trong cú pháp sử dụng này, thành phần Thông báo chính là chuỗi nội dung sẽ hiển thị
của lệnh. 
Giá trị của thành phần Loại thông báo sẽ quy định hình ảnh và những nút sẽ hiển thị
trong thông báo.
Các hằng số liên quan đến hình ảnh được hiển thị gồm:
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 33
vbQuestion
vbCritical
vbInformation
vbExclamation
Hằng số quy định các nút sẽ hiển thị gồm: vbOKOnly, vbOKCancel, vbYesNoCancel, 
vbYesNo, vbAbortRetryIgnore.
Tiêu đề là chuỗi ký tự sẽ xuất hiện trên thanh tiêu đề của cửa sổ thông báo.
Ví dụ để hiển thị giá trị của biến k chúng ta có thể dùng câu lệnh như sau:
MsgBox “k= “ & Format(k, “0.0”) & vbCrLf & “Khong hop le! Bien k phai khac 0”, 
vbOKOnly + vbCritical, “Thong bao loi”
3.4. Go Sub  Return
Chuyển điều khiển đến một nhãn trong chương trình và trở về (lệnh rẽ nhánh trở về).
Cú pháp:
GoSub Nhãn
Nhãn:
Các lệnh trong nhãn
Return
Trong đó: 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 34
 Nhãn là một thường trình trong chương trình, một chương trình có thể có nhiều 
thường trình, mỗi thường trình có một Nhãn phân biệt. Nhãn là một tên có độ dài.
 Return: là lệnh đặc biệt cho biết kết thúc một nhãn và thực hiên quay trở về lệnh đứng 
sau lệnh GoSub
3.5. Goto
Được dùng cho bẫy lỗi.
On Error Goto ErrorHandler
Khi có lỗi, chương trình sẽ nhảy đến nhãn ErrorHandler và thi hành lệnh ở đó.
3.6. On Error Goto nhãn
Lệnh On Error dùng trong hàm hay thủ tục báo cho Visual basic biết cách xử lý khi lỗi 
xảy ra.
On Error GoTo 
Dùng On error Goto 0 tắt xử lý lỗi
Cú pháp: 
Dạng 1: 
On Error GoTo 
: 
Ý nghĩa: 
 : là một tên được đặt theo quy tắc của một danh biểu. 
 Nếu một lệnh trong thì khi chương trình thực thi đến 
câu lệnh đó, chương trình sẽ tự động nhảy đến đoạn chương trình định nghĩa bên dưới 
 để thực thi. 
Dạng 2: 
On Error Resume Next 
Ý nghĩa: 
- Nếu một lệnh trong thì khi chương trình thực thi đến 
câu lệnh đó, chương trình sẽ tự động bỏ qua câu lệnh bị lỗi và thực thi câu lệnh kế tiếp.
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 35
3.7. Các hàm chuyển kiểu
 Cbool(biểu thức): trả ra giá trị Boolean bằng cách chuyển đổi luận lý biểu thức.
Ví dụ: A = 6; B = 7
Check = (A = B) (Check = False)
 Cbyte(biểu thức): trả ra số nguyên Byte bằng cách chuyển biểu thức ra Byte.
Ví dụ: X = 126.234
N = Cbyte(X) (N = 126)
 Cint(biểu thức): trả ra số nguyên Integer bằng cách chuyển biểu thức ra Integer.
Ví dụ: X = 12245.323
M = Cint(X) (M = 12245)
 Clng(biểu thức): trả ra số nguyên Long bằng cách chuyển biểu thức ra Long.
Ví dụ: MyDouble = 12145.4324
X = Clng(X) (X = 12145)
 Csng(biểu thức): trả ra số thực Single bằng cách chuyển biểu thức ra Single.
Ví dụ: MyDouble = 12145.432416934
X = Csng(MyDouble) (MyDouble = 12145.43242)
 Cdbl(biểu thức): trả ra số thực Double bằng cách chuyển biểu thức ra Double.
 Ccur(biểu thức): trả ra số Curency bằng cách chuyển biểu thức ra Currency.
 Cvar(biểu thức): trả ra giá trị kiểu Variant bằng cách chuyển biểu thức ra Variant.
 Cstr(biểu thức): trả ra Chuỗi bằng cách chuyển biểu thức ra Chuỗi.
 Cvdate(biểu thức): trả ra chuỗi Date bằng cách chuyển biểu thức ra Date.
 Chr(mã ký tự): trả ra một ký tự bằng cách chuyển mã ký tự ra ký tự tương ứng theo bảng 
mã Ascii. Mã ký tự: là giá trị số từ 0 đến 255
Ví dụ: C = Chr(65) (C = “A”)
 Val(số): trả ra một số chứa trong chuỗi.
Ví dụ: MyValue = Val(“2457”) (MyValue = 2457)
MyValue = Val(“2 4 5 7”) (MyValue = 2457)
MyValue = Val(“24 and 57”) (MyValue = 24)
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 36
3.8. Các hàm toán học
 Atn(Số): trả về giá trị Arctangent của số tính theo đơn vị Radians. Giá trị trả về trong 
khoảng từ -Pi/2 đến Pi/2.
 Cos(số): trả về giá trị Cosine của số tính theo đơn vị Radians. Giá trị trả về trong khoảng
từ -1 đến 1.
 Sin(Số): trả về giá trị Sine của số tính theo đơn vị Radians. Giá trị trả về trong khoảng từ -
1 đến 1.
 Tan(Số): trả về giá trị Tangent của số tính theo đơn vị Radians.
 Exp(Số): trả về giá trị eSơ, với hằng số e = 2.718282.
 Log(Số): trả về giá trị Logarithm tự nhiên của số với số >0. (Logarithm của e = 
2.718282).
 Sqr(Số): trả về căn bậc hai của số, với số >=0.
Ví dụ: A = Sqr(4) (A = 2)
 Randomize: thực hiện khởi động bộ tạo số ngẫu nhiên.
 Rnd: trả về một số ngẫu nhiên có giá trị =0.
 Abs(Số): trả về giá trị tuyệt đối của số.
 Sgn(Số): trả về một số nguyên cho biết dấu của số.
 Giá trị trả về = 1: số là số dương.
 Giá trị trả về = 0: số = 0.
 Giá trị trả về = -1: số là số âm.
Ví dụ: A = 23.454; B= -34.65
N = Int(A) (N = 23)
M = Fix(A) (M = 23)
X = Int(B) (X = -35)
Y = Fix(B) (Y = -34)
3.9. Các hàm kiểm tra kiểu dữ liệu
 IsDate(biểu thức): trả về giá trị True | False cho biết biểu thức có phải là Date không.
Ví dụ:
MyDate = “February 12, 1969”: YourDate = #2/12/69#: NoDate = “Hello”.
MyCheck = IsDate(MyDate) (MyCheck = True)
MyCheck = IsDate(YourDate) (MyCheck = True)
MyCheck = IsDate(NoDate) (MyCheck = False)
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 37
 IsEmpty(biểu thức): trả về giá trị True | False cho biết biểu thức đã được khởi tạo chưa.
 IsNull(biểu thức): trả về giá trị True | False cho biết biểu thức có phải là Null không.
 IsNumeric(biểu thức): trả về giá trị True | False cho biết biểu thức có phải là số không.
 IsArray(tên biến): trả về giá trị True | False cho biết biến có phải là mảng không.
 VarType(tên biến): trả về số nguyên cho biết kiểu dữ liệu của biến.
Giá trị 
trả về
Mô tả kiểu dữ liệu
0 Empty (chưa khởi tạo)
1 Null
2 Integer
3 Long
4 Single
5 Double
6 Currency
7 Date
8 String
9 OLE Automation Object
10 Error (biến lỗi)
11 Boolean
12 Mảng Variant
13 None OLE Automation Object
17 Byte
8192 Mảng
3.10. Các hàm thời gian
3.10.1 Lệnh gán giá trị
Với biến d được khai báo là có kiểu dữ liệu ngày tháng, chúng ta có thể khởi tạo giá trị
cho d bằng những lệnh sau:
 Dim d As Date
 'Khoi tao d bang ngay gio hien tai:
 d = Now 
 'Khoi tao d bang ngay hien tai:
 d = Date
 'Khoi tao d bang gia tri ngay thang:
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 38
 d = #12/24/2000# 
 'Khoi tao d bang 3 gia tri ngay, thang, nam:
 d = DateSerial(nam, thang, ngay) 
3.10.2 Lệnh xử lý ngày tháng
Lấy riêng giá trị ngày của d
 Hàm Day(d) As Variant(Integer)
Lấy riêng giá trị tháng của d
 Hàm Month(d) As Variant(Integer)
Lấy riêng giá trị năm của d
 Hàm Year(d) As Variant(Integer)
Tính thứ trong tuần của ngày d
 Hàm WeekDay(d)
(1 = vbSunday, 2 = vbMonday,...)
Cộng giá trị ngày d với k(tháng, ngày, tuần,...)
 Hàm DateAdd(“Đơn vị”, k, d) As Date
(Đơn vị được dùng có thể là:
“d”: tương ứng với ngày
“w”: tương ứng với tuần
“m”: tương ứng với tháng
“yyyy”: tương ứng với năm
Ví dụ dưới đây sẽ sử dụng các hàm về ngày tháng trong VB để xác định sinh nhật lần thứ
n của bạn là thứ mấy trong tuần.
 Dim d As Date, d1 As Date, n As Integer
 Dim s As String, thu As String
 s = InputBox("Nhap ngay sinh cua ban", "Nhap thong tin")
 n = InputBox("Nhap n", "Nhap thong tin")
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 39
 d = CDate(s)
 d1 = DateAdd("yyyy", n, d)
 Select Case Weekday(d1)
 Case 1
 thu = "Chu Nhat"
 Case 2
 thu = "Thu Hai"
 ...
 Case 7
 thu = "Thu Bay"
 End Select
 MsgBox "Sinh nhat thu " & Str(n) & " cua ban la ngay " & thu
3.11. Các hàm xử lý chuỗi
3.11.1 Hàm Len
Hàm này dùng để tính chiều dài của một chuỗi nào đó. Cú pháp sử dụng của hàm có dạng
sau:
dodai = Len(chuoi)
trong đó dodai phải là một biến kiểu số nguyên đã được khai báo. Câu lệnh dưới đây sẽ
duyệt qua từng  ...  nội tại ra 
khỏi hộp công cụ. 
Các điều khiển ActiveX tồn tại trong các tập tin độc lập có phần mở rộng .OCX: Đó là 
các điều khiển có thể có trong mọi phiên bản của VB hoặc là các điều khiển chỉ hiện diện 
trong ấn bản Professional và Enterprise. Mặt khác còn có rất nhiều điều khiển ActiveX do nhà 
cung cấp thứ ba cung cấp. 
Các đối tượng chèn được (Insertable Object): Các đối tượng này có thể là Microsoft 
Equation 3.0 hoặc bảng tính (Worksheet) của Microsoft Excel... Một vài đối tượng kiểu này 
cho phép ta lập trình với các đối tượng sinh ra từ các ứng dụng khác ngay trong ứng dụng VB.
2. Sử dụng các điều khiển
2.1. Listbox
2.1.1 Khái niệm
Điều khiển này hiển thị một danh sách các đề mục mà ở đó người dùng có thể chọn lựa 
một hoặc nhiều đề mục 
Biểu tượng (Shortcut) trên hộp công cụ 
Điều khiển này hiển thị một danh sách các đề mục mà ở đó người dùng có thể chọn lựa 
một hoặc nhiều đề mục 
List Box giới thiệu với người dùng một danh sách các lựa chọn. Một cách mặc định, các 
lựa chọn hiển thị theo chiều dọc trên một cột và bạn có thể thiết lập là hiển thị theo nhiều cột. 
Nếu số lượng các lựa chọn nhiều và không thể hiển thị hết trong danh sách thì một thanh trượt 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 58
sẽ tự động xuất hiện trên điều khiển. Dưới đây là một ví dụ về danh sách các lựa chọn đơn 
cột. 
2.1.2 Thuộc tính
 Name: Đây là tên của danh sách lựa chọn, được sử dụng như một định danh. o 
MultiSelect: Thuộc tính này cho phép List Box có được phép có nhiều lựa chọn khi thực 
thi hay không? 
 Sort: List Box có sắp xếp hay không? o Ngoài ra còn có một số thuộc tính thông dụng 
khác như: Font, Width, Height 
 ListIndex: Vị trí của phần tử được lựa chọn trong List Box. 
 Select(): cho biết phần tử thứ trong List Box có được chọn hay không? 
2.1.3 Phương thức
 AddItem: Thêm một phần tử vào List Box. Cú pháp: .AddIem(Item As String, 
[Index]) 
Private Sub Form_Load ()
List1.AddItem "Germany" 
List1.AddItem "India" 
List1.AddItem "France" 
List1.AddItem "USA" 
End Sub 
Người dùng cũng có thể thêm vào một đề mục mới một cách tự động vào bất kỳ thời
điểm nào nhằm đáp lại tác động từ phía người sử dụng ứng dụng. Dưới đây là hình ảnh minh 
họa cho List Box tương ứng với đoạn mã ở trên.
Thêm một đề mục mới tại vị trí xác định: để thực hiện công việc này ta chỉ cần chỉ ra vị 
trí cần xen đề mục mới vào. 
Ví dụ: List1.AddItem "Japan", 0 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 59
Thêm mới đề mục tại thời điểm thiết kế: Sử dụng thuộc tính List của điều khiển List Box, 
ta có thể thêm mới các đề mục và dùng tổ hợp phím CTRL+ENTER để bắt đầu thêm vào đề 
mục mới trên dòng khác. Khi đã thêm xong danh sách các đề mục, ta có thể sắp xếp lại các đề 
mục bằng cách sử dụng thuộc tính Sorted và đặt giá trị của thuộc tính này là TRUE. 
 RemoveItem: Xóa một phần tử ra khỏi List Box. 
Cú pháp: .RemoveItem Index 
Tham số Name và Index giống như ở trường hợp thêm vào một đề mục. 
 Clear: Xóa tất cả các mục trong List Box. Cú pháp .Clear 
 Text: Nhận giá trị từ List Box khi một đề mục được chọn. Chẳng hạn đoạn mã sau đây sẽ 
cho biết dân số của Canada khi người dùng chọn Canada từ List Box. 
Private Sub List1_Click () 
If List1.Text = "Canada" Then 
Text1.Text = "Canada has 24 million people." 
End If 
End Sub 
 List: truy xuất nội dung phần tử bất kỳ trong List Box. 
Thuộc tính này cho phép truy xuất tất cả các đề mục của điều khiển List Box. Thuộc tính 
này chứa một mảng và mỗi đề mục là một phần tử của mảng. Mỗi đề mục được hiển thị dưới 
dạng chuỗi, để tham chiếu đến một đề mục trong danh sách, sử dụng cú pháp sau: 
.List(Index) 
Ví dụ: Text1.Text = List1.List(2) 
2.1.4 Sự kiện
 Click & Double Click: Xảy ra khi người sử dụng nhấp chuột (hay nhấp đúp) vào List 
Box. 
Thông thường người sử dụng sẽ thiết kế một nút lệnh đi kèm để nhận về giá trị do người 
dùng chọn. Khi đó công việc thực hiện sau khi nút lệnh được chọn sẽ phụ thuộc vào giá trị 
người dùng chọn từ List Box. 
Double Click lên một đề mục trong danh sách cũng có kết quả tương tự như việc chọn 
một đề mục trong danh sách rồi ấn lên nút lệnh. Để thực hiện công việc như trên trong sự kiện 
Double Click của List Box ta sẽ gọi đến sự kiện Click của nút lệnh. 
Private Sub List1_DblClick () 
Command1_Click 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 60
End Sub 
Hoặc ta có thể thiết đặt giá trị True cho thuộc tính Value của nút lệnh. 
Private Sub List1_DblClick () 
mmand1.Value = True 
End Sub 
2.2. Combobox 
Điều khiển Combo Box có thể được xem là tích hợp giữa hai điều khiển Text Box và List 
Box. Người dùng có thể chọn một đề mục bằng cách đánh chuỗi văn bản vào Combo Box 
hoặc chọn một đề mục trong danh sách. 
Điểm khác nhau cơ bản giữa Combo Box và List Box là điều khiển Combo chỉ gợi ý (hay 
đề nghị) các lựa chọn trong khi đó điều khiển List thì giới hạn các đề mục nhập vào tức là 
người dùng chỉ có thể chọn những đề mục có trong danh sách. Điều khiển Combo chứa cả ô 
nhập liệu nên người dùng có thể đưa vào một đề mục không có sẵn trong danh sách. 
Biểu tượng (Shortcut) trên hộp công cụ
Các dạng của điều khiển Combo Box: Có tất cả 3 dạng của điều khiển Combo Box. Ta có 
thể chọn dạng của Combo tại thời điểm thiết kế bằng cách dùng giá trị hoặc hằng chuỗi của 
VB. 
Kiểu Giá trị Hằng 
Drop-down Combo Box 0 VbComboDropDown 
Simple Combo Box 1 VbComboSimple 
Drop-down List Box 2 vbComboDropDownList 
- Drop-down Combo Box: Đây là dạng mặc nhiên của Combo. Người dùng có thể nhập 
vào trực tiếp hoặc chọn từ danh sách các đề mục. 
- Simple Combo Box: Ta có thể hiển thị nhiều đề mục cùng một lúc. Để hiển thị tất cả các 
đề mục, bạn cần thiết kế Combo đủ lớn. Một thanh trượt sẽ xuất hiện khi còn đề mục chưa 
được hiển thị hết. Ở dạng này, người dùng vẫn có thể nhập một chuỗi vào trực tiếp hoặc chọn 
từ danh sách các đề mục. 
- Drop down List Box: Dạng này rất giống như một List box. Một điểm khác biệt đó là 
các đề mục sẽ không hiển thị đến khi nào người dùng Click lên mũi tên phía phải của điều 
khiển. Điểm khác biệt với dạng thứ 2 đó là người dùng không thể nhập vào trực tiếp một 
chuỗi không có trong danh sách. 
Các thuộc tính cũng như các phương thức áp dụng trên Combo Box giống như trên List 
Box. 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 61
2.3. Checkbox
2.3.1 Khái niệm
Đây là điều khiển hiển thị dấu nếu như được chọn và dấu bị xoá nếu như không chọn. 
Dùng điều khiển Check Box để nhận thông tin từ người dùng theo dạng Yes/No hoặc 
True/False. Ta cũng có thể dùng nhiều điều khiển trong một nhóm để hiển thị nhiều khả năng 
lựa chọn trong khi chỉ có một được chọn. Khi Check Box được chọn, nó có giá trị 1 và ngược 
lại có giá trị 0. 
Biểu tượng (Shortcut) trên hộp công cụ 
2.3.2 Thuộc tính
 Name: thuộc tính tên. 
 Value: Giá trị hiện thời trên Check Box. Có thể nhận các giá trị: vbChecked, 
vbUnchecked, vbGrayed. 
2.3.3 Sự kiện
 Click: Xảy ra khi người sử dụng nhấp chuột trên Check Box.
2.4. Option Button
2.4.1 Khái niệm
Công dụng của điều khiển Option button cũng tương tự như điều khiển Check Box. Điểm 
khác nhau chủ yếu giữa hai loại điều khiển này đó là: Các Option Button của cùng một nhóm 
tại mỗi thời điểm chỉ có một điều khiển nhất định được chọn. 
Biểu tượng (Shortcut) trên hộp công cụ
Cách sử dụng Option button cũng tương tự như của Check Box. 
Tạo nhóm Option Button 
Tất cả các Option button đặt trực tiếp trên biểu mẫu (có nghĩa là không thuộc vào Frame 
hoặc Picture Box) sẽ được xem như là một nhóm. Nếu người dùng muốn tạo một nhóm các 
Option button khác thì bắt buộc phải đặt chúng bên trong phạm vi của một Frame hoặc 
Picture box. 
2.4.2 Thuộc tính
 Name: thuộc tính tên của điều khiển Option Button. 
 Value: Giá trị hiện thời trên Option Button. Có thể nhận các giá trị: True & False. 
2.4.3 Sự kiện
 Click: Xảy ra khi người sử dụng nhấp chuột trên Option Button. 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 62
2.5. Timer
2.5.1 Khái niệm
Điều khiển Timer đáp ứng lại sự trôi đi của thời gian. Nó độc lập với người sử dụng và ta 
có thể lập trình để thực hiện một công việc nào đó cứ sau một khoảng thời gian đều nhau. 
Biểu tượng (shortcut) trên hộp công cuï 
Việc đưa một điều khiển Timer vào trong một biểu mẫu cũng tương tự như những điều 
khiển khác. Ở đây, ta chỉ có thể quan sát được vị trí của điều khiển Timer tại giai đoạn thiết 
kế, khi chạy ứng dụng điều khiển Timer coi như không có thể hiện trên biểu mẫu. 
2.5.2 Thuộc tính
 Name: tên của điều khiển Timer. 
 Interval: Đây là thuộc tính chỉ rõ số ms giữa hai sự kiện kế tiếp nhau. Trừ khi nó bị vô 
hiệu hóa, mỗi điều khiển Timer sẽ luôn nhận được một sự kiện sau một khoảng thời gian 
đều nhau. Thuộc tính Interval nhận giá trị trong khoảng 0...64.767 ms có nghĩa là khoảng 
thời gian dài nhất giữa hai sự kiện chỉ có thể là khoảng một phút (64.8 giây). 
 Enabled: nếu giá trị là True nghĩa là điều khiển Timer được kích hoạt và ngược lại.
2.5.3 Sự kiện
 Timer: xảy ra mỗi khi đến thời gian một sự kiện được thực hiện (xác định trong thuộc 
tính Interval).
2.5.4 Sử dụng điều khiển Timer
 Khởi tạo một điều khiển Timer: Nếu lập trình viên muốn điều khiển Timer hoạt động 
ngay tại thời điểm biểu mẫu chứa nó được nạp thì đặt thuộc tính Enable là TRUE hoặc có 
thể dùng một sự kiện nào đó từ bên ngoài để kích hoạt điều khiển Timer. 
 Lập trình đáp ứng sự kiện trả về từ điều khiển Timer: Ta sẽ đưa mã lệnh của công 
viêc cần thực hiện vào trong sự kiện Timer của điều khiển Timer. Sau đây là ví dụ khởi 
tạo một đồng hồ số nhờ vào điều khiển Timer. 
Private Sub Timer1_Timer() 
If Label1.Caption CStr(Time) Then Label1.Caption = 
Time 
End If 
End Sub 
Thuộc tính Interval được thiết lập là 500 (tức 0.5 giây). Điều khiển Timer còn hữu ích 
trong việc tính toán thời gian cho một công việc nào đó, đến một thời điểm nào đó thì ta sẽ 
khởi tạo một công việc mới hoặc ngưng một công việc không còn cần nữa.
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 63
2.6. Hscroll
2.6.1 Khái niệm
Là điều khiển có thanh trượt cho phép cuộn ngang và người dùng có thể sử dụng 
HScrollBar như một thiết bị nhập hoặc một thiết bị chỉ định cho số lượng hoặc vận tốc. Ví dụ 
ta thiết kế volume cho một trò chơi trên máy tính hoặc để diễn đạt có bao nhiêu thời gian trôi 
qua trong một khoảng định thời nhất định. 
Biểu tượng (Shortcut) trên hộp công cụ
Khi người dùng sử dụng Scroll Bar như một thiết bị chỉ định số lượng thì người dùng cần 
xác định giá trị cho hai thuộc tính Max và Min để đưa ra khoảng thay đổi thích hợp. 
2.6.2 Thuộc tính
 Name: Tên của thanh cuộn. 
 Min: Là giá trị nhỏ nhất trên thanh cuộn. 
 Max: Giá trị lớn nhất của thanh cuộn. 
 Large change: Thuộc tính này dùng để xác định khoảng thay đổi khi người dùng ấn chuột 
lên Hscrollbar. 
 Small change: Thuộc tính này dùng để xác định khoảng thay đổi khi người dùng ấn lên 
mũi tên phía cuối thanh cuộn. 
 Value: Thuộc tính này trả về giá trị tại một thời điểm của thanh cuộn nằm trong khoảng 
giá trị [Min, Max] mà người dùng đã xác định. 
2.6.3 Sự kiện
 Change: Xảy ra mỗi khi HScrollBar thay đổi giá trị. 
 Scroll: Xảy ra mỗi khi ta di chuyển con trỏ thanh cuộn. 
Private Sub HScroll1_Change() 
Text1.FontSize = HScroll1.Value 
End Sub 
2.7. Vscroll
Biểu tượng (Shortcut) trên hộp công cụ
Các thuộc tính và công dụng của VScrollBar cũng tương tự như HScrollBar. 
2.8. Picture Box
2.8.1 Khái niệm
Điều khiển Picture Box cho phép người dùng hiển thị hình ảnh lên một biểu mẫu. 
Biểu tượng (Shortcut) trên hộp công cụ 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 64
2.8.2 Thuộc tính
 Name: tên của điều khiển Picture Box. 
 Picture: Đây là thuộc tính cho phép xác định hình ảnh nào sẽ được hiển thị bên trong 
Picture box. Bao gồm tên tập tin hình ảnh và cả đường dẫn nếu có. 
Để hiển thị hoặc thay thế một hình ảnh tại thời điểm chạy chương trình thì người dùng có 
thể dùng phương thức LoadPicture để đặt lại giá trị của thuộc tính Picture với cú pháp như 
trong ví dụ dưới đây: 
picMain.Picture = LoadPicture("NEW.JPG") 
 Autosize: Khi giá trị của thuộc tính này là TRUE thì điều khiển Picture box sẽ tự động 
thay đổi kích thước cho phù hợp với hình ảnh được hiển thị. Ta nên cẩn thận khi sử dụng 
thuộc tính này vì khi điều khiển Picture Box thay đổi kích thước, nó không quan tâm 
đến vị trí của các điều khiển khác. 
2.8.3 Sự kiện
 Mouse Down: Xảy ra khi người sử dụng chương trình nhấn giữ phím chuột. 
 Mouse Move: Xảy ra khi người sử dụng chương trình di chuyển chuột. 
 Mouse Up: Xảy ra khi người sử dụng chương trình thả phím chuột. 
Lưu ý :
 Điều khiển Picture Box có thể được dùng như một vật chứa các điều khiển khác 
(tương tự như một Frame). 
 Ngoài ra người dùng cũng có thể sử dụng Picture Box như một khung vẽ hoặc như 
một khung soạn thảo và có thể in được nội dung trên đó. 
2.9. Image
2.9.1 Khái niệm
Điều khiển Image dùng để hiển thị một hình ảnh. Các dạng có thể là Bitmap, Icon, 
Metafile, Jpeg, Gif. Tuy nhiên khác với điều khiển Picture Box điều khiển Image sử dụng tài 
nguyên hệ thống ít và cũng nạp ảnh nhanh hơn; hơn nữa số lượng thuộc tính và phương thức 
áp dụng ít hơn điều khiển Picture box. 
Biểu tượng Shortcut trên hộp công cụ 
2.9.2 Thuộc tính
 Name: tên của điều khiển Image. 
 Picture: Đây là thuộc tính cho phép xác định hình ảnh nào sẽ được hiển thị bên trong điều 
khiển Image. Bao gồm tên tập tin hình ảnh và cả đường dẫn nếu có. 
Trường Đại học Công Nghệ Sài Gòn Khoa Công Nghệ Thông Tin
Giáo trình Lập trình căn bản – dành cho hệ TCCN Trang 65
Để hiển thị hoặc thay thế một hình ảnh tại thời điểm chạy chương trình thì người dùng có 
thể dùng phương thức LoadPicture để đặt lại giá trị của thuộc tính Picture với cú pháp như 
trong ví dụ dưới đây: 
imgMain.Picture = LoadPicture("NEW.JPG") 
 Stretch: Khi giá trị của thuộc tính này là TRUE thì điều khiển Image sẽ tự động thay đổi 
kích thước cho phù hợp với hình ảnh được hiển thị. 
2.9.3 Sự kiện
 Mouse Down: Xảy ra khi người sử dụng chương trình nhấn giữ phím chuột. 
 Mouse Move: Xảy ra khi người sử dụng chương trình di chuyển chuột. 
 Mouse Up: Xảy ra khi người sử dụng chương trình thả phím chuột. 
2.10. Shape
Biểu tượng Shortcut trên hộp công cuï 
Điều khiển Shape dùng để vẽ các hình dạng như: hình chữ nhật, hình vuông, oval, hình 
tròn, hình chữ nhật góc tròn hoặc hình vuông góc tròn. 
Thuộc tính Shape cho phép người dùng chọn 1 trong 6 dạng như đã nêu ở trên. Sau đây là 
bảng giá trị của thuộc tính này
Hình dạng Giá trị Hằng 
Rectangle 0 vbShapeRectangle 
Square 1 vbShapeSquare 
Oval 2 vbShapeOval 
Circle 3 vbShapeCircle 
Rounded Rectangle 4 vbShapeRoundedRectangle
Rounded Square 5 vbShapeRoundedSquare 

File đính kèm:

  • pdfgiao_trinh_lap_trinh_can_ban_visual_basic_phan_2.pdf