Bài 2: Tìm hiểu thêm về TextBox và Label Controls
Trong bài 1 quý vị đã làm quen với Label và TextBox controls.Bài này chúng tôi sẽ đi
sâu vào một số Methods và Events thông dụng của 2 controls trên.Bây giờ chúng ta
hãy thiết kế một form thường được gọi là form Log In cho phép người sử dụng đánh
tên và mật mã(Password) vào sau đó kiểm tra xem password có đúng với những chữ
đã được định trước không.
1. Mở một project mới, Trên Properties Window double click vào
caption
và đánh vào
chữ Log In. Double Click vào
Name
và đặt tên form là frmLogIn. Property
Name
là tên
của control được sử dụng trong mã chương trình, còn
caption
là tên hiện ra trên
thanh tiêu đề (title bar)của form.
2.Ðặt các controls với Properties như bảng1 dưới đây lên form LogIn
Control Name Caption Text
Label LblUserName User Name
Label LblPassword Password
Label LblDisplay Display
TextBox TxtUserName ""
TextBox TxtPassword ""
CommandButton CmdOk Ok
CommandButton CmdCancel Cancel
Bảng 1.
Chú thích:
• Ô tô đậm: không có property tương ứng.
• ký hiệu "": để khoảng trắng
3.Sắp xếp các controls như hình vẽ dưới đây:
4.Click vào TextBox TxtPassword chọn
Password Character
trên Property Window.
Ðánh vào dấu "*"(Asterisk). Ðây là ký tự thay thế sẽ hiện ra khi chúng ta đánh
password.
5.Chúng ta đã xong phần thiết kế giao diện.Bây giờ double click vào TextBox
TxtUserName để hiện ra Code Window(hay click vào biểu tượng View Code trên
Project Window).Phía trên Code Window được chia làm 2 phần.Bên trái là danh sách
các Controls, bên phải là danh sách các Events của một control tương ứng. Muốn viết
mã chương trình cho Event nào chỉ cần click vào tên Control và tên Event, sau đó viết
code vào khoảng giữa Private sub .....End sub.Ðánh vào những dòng sau:
Const Pwd = "hello"
Private Sub CmdCancel_Click()
End
End Sub
Private Sub CmdOk_Click()
If TxtPassword.Text = Pwd Then
MsgBox "Welcome"
Else
MsgBox "Invalid password"
End If
End Sub
Private Sub TxtUserName_Change()
LblDisplay.Caption = TxtUserName.Text
End Sub
Private Sub TxtUserName_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then TxtPassword.SetFocus
End Sub
Private Sub TxtUserName_LostFocus()
If TxtUserName.Text = "" Then MsgBox "Please enter User Name"
End Sub
6. ấn phím F5 để chạy chương trình.Lần lượt kiểm tra các bước sau:
• Chưa đánh chữ vào user name textbox,ấn phím Tab->hiện ra message box
nhắc ta đánh chữ vào.
• Ðánh tên user->LblDisplay sẽ thay đổi tương ứng. Sau đó ấn phím Enter-
>Cursor(con trỏ) sẽ chuyển sang textbox password.
• Ðánh password->Chỉ thấy dấu "*" hiện ra
• Click Ok->hiện ra message box cho ta biết password vừa đánh vào là đúng hay
sai.Password đúng là "hello"
• Click Cancel->dừng chương trình.
Giải thích:
Chúng ta đã sử dụng 3 Events của textbox :
• _KeyPress(KeyAscii As Integer): sự kiện xảy ra khi có phím được ấn.Mỗi ký tự
mà chúng ta đánh vào đều có tương ứng một mã Ascii(số từ 0..255) .Còn
Integer là một loại dữ liệu số học từ -32,768 to 32,767. Chương trình của
chúng ta sẽ kiểm tra nếu (If)phím được ấn là Enter(VbKeyReturn) thì
(Then)Cursor sẽ chuyển sang textbox TxtPassword( SetFocus). VbKeyReturn là
một hằng số(constant)=13 tương đương với mã Ascii của phím Enter. Trong đó
SetFocus là một Method làm cho control nhận được sự chú ý của chương
trình.
• (Text) _Change(): sự kiện xảy ra khi nội dung trong textbox bị thay đổi.(nếu
cả hai sự kiện đều xảy ra thì KeyPress sẽ xảy ra trước). Khi nội dung trong text
box bị thay đổi thì chúng ta thay đổi
caption
của LblDisplay tương ứng với nội
dung mới.
• _LostFocus(): Xảy ra khi control mất sự chú ý của chương trình. Chương trình
chúng ta kiểm tra xem nếu nội dung trong textbox rỗng(null) thì hiện ra thông
điệp nhắc nhở user đánh chữ vào cűng bằng cấu trúc (If...Then...).(Tương tự
Khi một control nhận được sự chú ý của chương trình thì xảy ra Event ngược
lại là GotFocus.)
Khi xảy ra Event Click trên CmdCancel thì chúng ta chấm dứt chương trình bằng câu
lệnh End. Còn khi click vào CmdOk thì chương trình kiểm tra nếu password đánh vào
giống như Constant(tạm dịch là hằng số, là một số có giá trị không đổi, thật ra trong
trường hợp này không phải là số mà là những ký tự đã được định trước:Const Pwd =
"hello") thì hiện ra thông điệp "Welcome",còn nếu không phải (Else) thì hiện câu
"Invalid Password".Chúng ta hoàn toàn có thể thay đổi chữ "hello" bằng bất kỳ chữ
nào khác mà ta thích.
Tóm lại qua bài này chúng ta đã tìm hiểu một số Events và Methods thông dụng của
TextBox Control cűng là những Events và Methods căn bản của hầu hết các controls
khác.Trong bài sau quý vị sẽ tìm hiểu thêm một số control thông dụng khác.