Giả dụ ta viết một chương trình Vb6 đơn giản như trong hình nầy với hai Textbox tên txtName, txtAge và một nút tên CmdEnter nằm trong một form tên Form1:
Thông thường các dòng code được xử lý theo thứ tự từ trên xuống dưới. Thí dụ như để kiểm xem các dữ kiện vừa được cho vào các Textbox có
tương đối hợp lý hay không, khi User click nút CmdEnter, ta xử lý Sub dưới đây:
Private Sub CmdEnter_Click()
' Make sure the Name field is not blank If txtName.Text = "" Then
MsgBox "Please enter Name" Exit Sub ' Terminate this Sub End If
' Make sure a number is supplied for Age If Not IsNumeric(txtAge.Text) Then
MsgBox "Please enter a number for Age" Exit Sub ' Terminate this Sub
End If
End Sub
Cái Sub nói trên có chữ Private nằm phía trước, ý nói chỉ nội trong cùng một form chứa Control CmdEnter (tức là Form1 trong trường hợp nầy) ta mới có thể gọi (dùng) Sub CmdEnter_Click().Thí dụ ta muốn khi User bấm key "Enter" trên bàn phím sau khi cho vào chi tiết ở Textbox txtAge thì coi như User đã click nút CmdEnter. Ta viết như sau:
Private Sub txtAge_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0 ' swallow Key Enter to avoid side effect
CmdEnter_Click ' Call Private Sub CmdEnter_Click from the same form End If
End Sub
Khi ta dùng câu CmdEnter_Click làm một dòng code (còn gọi là gọi Sub CmdEnter_Click) thì coi như tương đương với nhét tất cả 10 dòng codes giữa hai hàng Private Sub CmdEnter_Click() và End Sub tại chỗ câu CmdEnter_Click, như viết lại dưới đây:
Private Sub txtAge_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0 ' Swallow Key Enter to avoid side effect ' Make sure the Name field is not blank
If txtName.Text = "" Then MsgBox "Please enter Name" Exit Sub ' Terminate this Sub End If
' Make sure a number is supplied for Age If Not IsNumeric(txtAge.Text) Then
MsgBox "Please enter a number for Age" Exit Sub ' Terminate this Sub
End If End If
End Sub
Có một cách nói khác là khi execution đi đến hàng CmdEnter_Click thì nó nhảy vào Private Sub CmdEnter_Click() để execute cho đến hết rồi nhảy trở lại hàng kế tiếp trong Private Sub txtAge_KeyPress(KeyAscii As Integer) Trong Private Sub CmdEnter_Click() nếu User không
đánh gì vào Textbox txtName thì chương trình sẽ display message "Please enter Name" rồi Exit Sub. Đây là cách nhảy ngay ra khỏi Sub chớ không
đợi phải execute xuống tới hàng chót.