SỬ DỤNG CÁC ĐIỀU KHIỂN CƠ BẢN MỤC TIÊU: SAU KHI HOÀN THÀNH CÁC BÀI TẬP, NGƯỜI HỌC CÓ THỂ Sử dụng được các điều khiển cơ bản của VB Kết hợp sử dụng nhiều điều khiển cơ bản trong chương trình Vận dụng các điều khiển để viết được một số chương trình tiện ích.
Trang 1Ch−¬ng ii
Sö dông c¸c ®iÒu khiÓn c¬ b¶n
MỤC TIÊU: SAU KHI HOÀN THÀNH CÁC BÀI TẬP, NGƯỜI HỌC CÓ THỂ
Sử dụng được các điều khiển cơ bản của VB
Kết hợp sử dụng nhiều điều khiển cơ bản trong chương trình
Vận dụng các điều khiển để viết được một số chương trình tiện ích
A - ĐỀ BÀI TẬP
Bài 1: Viết chương trình giải phương trình bậc 2 Hệ số a, b, c nhập từ các
TextBox Kết quả nghiệm được hiển thị trên 2 nhãn, hoặc thông báo là vô nghiệm bằng hàm MsgBox Giao diện có dạng như sau:
Hình 2.1 – Giao diện chương trình Bài 2: Một form nhập (ví dụ: hàng hoá, E-Mail, Web Hosting…) thường có rất nhiều
textbox, combobox và mỗi khi thêm một bản ghi mới thì đều cần xoá trắng nội dung trong các textbox, combobox này Hãy tạo một form như Hình 2 và viết lệnh cho nút
Xoá thực hiện xoá trắng các điều khiển này một cách nhanh nhất !
Hình 2.2 – Form nhập hàng hoá
Trang 2Bài 3: Viết chương trình nhập họ tên sinh viên của một lớp vào một ListBox, trong
qua trình nhập có thể cho phép người dùng xoá một số mục của Listbox Giao diện
chương trình như hình 3 Lưu ý: Mục thêm sau được đặt lên đầu danh sách
Hình 2.3 – Thêm và xoá một mục khỏi Listbox Bài 4: Viết chương trình như bài số 3, nhưng khi “Xoá khỏi danh sách” thì có thể
thực hiện chọn nhiều mục với các Checkbox Giao diện giống như Hình 4
Hình 2.4 - Chọn các mục với Style là “Checkbox”
Bài 5: Minh hoạ sử dụng điều khiển Listbox và thuộc tính đa lựa chọn
Xây dựng giao diện chương trình như hình 5
Hình 2.5 - Chuyển các mục từ một Listbox sang một Listbox khác
Trang 3• Trong cả hai Listbox, đều cho phép người dùng lựa chọn nhiều mục đồng thời
• Click vào nút Thoát thì kết thúc chương trình
• Yêu cầu thêm: Sau khi đã chèn các mục đang chọn bên Listbox trái sang List
bên phải thì cũng đồng thời xoá các mục đang chọn đó khỏi Listbox bên trái
Bài 6: Minh hoạ sử dụng điều khiển Listbox và hàm tách xâu Split
Hình 2.6 - Đảo tên lên trước họ đệm
Yêu cầu:
• Nạp sẵn một số mục vào trong Listbox phía trái trong thủ tục Form_load
họ trong listbox phía trái và chèn vào Listbox phía phải
Bài 7: Tách địa chỉ E-Mail sử dụng hàm Split
Các trang gửi E-Mail như Yahoo hay phần mềm Outlook Express đều cho phép người dùng có thể gửi tới nhiều địa chỉ khác nhau và mỗi địa chỉ này cách nhau bởi dấu chấm phảy
Hãy xây dựng một Form như hình 7
Yêu cầu: Khi người dùng click vào nút "Thực hiện tách" thì các địa chỉ trong hộp
Textbox sẽ được tách ra, sau đó chèn vào Listbox phía bên phải Ví dụ: nếu nhập vào là abc@hn.vnn;xyz@yahoo.com thì tách thành 2 mục là abc@hn.vnn.vn và xyz@yahoo.com
Trang 4Hình 2.7– Tách xâu sử dụng hàm Split Bài 8: Sắp xếp danh sách theo TÊN, áp dụng bài tập số 7 (Hàm Split)
Hình 2.8 - Sắp xếp danh sách theo TÊN
Yêu cầu:
• Nạp sẵn (sử dụng phương thức AddItem) một số mục vào Listbox phía trái
• Copy các mục trong Listbox phía trái sang Listbox phía phải
• Khi người dùng Click chọn nút “Sắp xếp theo tên” thì sắp xếp danh sách
sinh viên trong Listbox phía phải theo thứ tự ưu tiên Tên, sau đó mới đến họ
Bài 9: Minh hoạ sử dụng điều khiển ComboBox
Yêu cầu sau:
• Khi người dùng nhập một địa chỉ Web (URL) và nhấn Enter thì thực hiện thêm mục này vào trong ComboBox
• Mở trang Web với địa chỉ tương ứng mà người dùng vừa nhập vào
• Mở trang Web tương ứng khi người dùng click chọn trong hộp ComboBox
Trang 5Hình 2.9 – Thao tác với ComboBox và WebBrowser để duyệt Web
Bài 10: Minh hoạ thao tác với ComboBox và việc lấy tên font của hệ thống
Yêu cầu:
• Nạp tất cả các Font chữ hiện có trong máy tính vào hộp Combo
• Đặt font chữ cho textbox bằng với Font chữ khi người dùng chọn trong hộp Combox Trong đó, hộp Combox hiển thị ở chế độ (style) là : Dropdown list
• Đặt cỡ chữ cho textbox bằng với cỡ chữ trong hộp Combox cỡ chữ
• Hộp Textbox hiển thị ở chế độ MultiLine (Nhiều dòng)
Hình 2.10 - Kết hợp sử dụng nhiều hộp ComboBox
Trang 6Bài 11: Minh hoạ sử dụng điều khiển Option button và sử dụng hàm
API-Exitwindow
Yêu cầu:
• Khi người dùng click chọn các mục Logoff, Restart, Shutdown và chọn mục
“Normal” thì thực hiện Logoff, Restart, shutdown ở chế độ “Normal” (Ở chế độ này thì khi Restart, Shutdown…nếu có một ứng dụng đang chạy–ví dụ Microsoft word-có dữ liệu chưa được lưu thì máy tính sẽ hỏi trước khi Restart)
• Khi người dùng click chọn các mục Logoff, Restart, Shutdown và chọn mục
“Bắt buộc” thì thực hiện Logoff, Restart, shutdown ở chế độ “Fore” (ở chế độ này thì máy tính thực hiện ngay và dữ liệu chưa lưu sẽ bị mất)
• Giá trị chọn mặc định là Restart-Normal
Hình 2.11 - Khởi động máy tính ở chế độ Normal (bình thường)
Bài 12 – Minh hoạ sử dụng nhãn (Label) để giả lập thanh tiêu đề của cửa sổ
Font chữ hiển thị trên các thanh tiêu đề của cửa sổ là font chữ hệ thống, thường không phải là font tiếng việt Do vậy khi chạy chương trình trên các máy tính khác nhau thì việc hiển thị có thể không còn đúng nữa Để giải quyết vấn đề này, có một giải pháp là ẩn thanh tiêu đề của cửa sổ và thay vào đó là một Label và Font chữ của Label sẽ được đặt là font chữ tiếng Việt nên việc hiển thị luôn đảm bảo giữa các
hệ thống khác nhau
Yêu cầu:
• Xây dựng một Form như hình 10, trong đó tiêu đề là một Label với font chữ là vnArialH, cỡ chữ là 12pt
• Khi người dùng di chuyển thanh tiêu đề thì form cũng di chuyển theo
• Khi người dùng click vào nút thì thoát khỏi ứng dụng
Hình 2.12 - Sử dụng Label thay cho thanh tiêu đề
Trang 7Bài 13 – Minh hoạ sử dụng Label kết hợp với Frame và Timer
a Giao diện chương trình
Hình 2.13 - Cuộn văn bản với Label + Frame + Timer
b Yêu cầu:
• Dòng chữ trong Label sẽ cuộn từ dưới lên
thì dừng cuộn
• Khi nội dung đã cuộn hết thì đặt lại Label về vị trí cuộn ban đầu
Bài 14 : Yêu cầu như bài 13 nhưng tốc độ cuộn (Khoảng Interval của điều khiển
Timer) có thể thay đổi trực quan bằng thanh điều chỉnh tốc độ (Vscrollbar)
Hình 2.14 - Điều chỉnh tốc độ bằng thanh Vscroll
Bài 15 - Sử dụng Label, kết hợp với Line để giả lập nút nhấn (Command button)
Khi chuột di chuyển ở ngoài “nút” Khi chuột di chuyển bên trong “nút”
Hình 2.15 - Giả lập nút nhấn bằng điều khiển Label và Line
Yêu cầu: Tạo một nút nhấn “THOÁT” chỉ sử dụng Label và Line Để :
• Khi người dùng click vào nút này thì thoát khỏi chương trình
Trang 8• Di chuyển chuột vào Label thì Font chữ đổi thành ĐẬM, màu chữ trắng-nền đen và đường thẳng (bên trái và trên chuyển thành màu ĐEN)
• Khi di chuyển ra khỏi Label (hay di chuyển chuột trong form) thì đặt lại về các thuộc tính ban đầu
Bài 16: Minh hoạ sử dụng điều khiển Timer tạo hiệu ứng chữ chạy
Hình 2.16 - Sử dụng Timer tạo hiệu ứng chữ chạy trên thanh Tiêu đề
Yêu cầu: Dòng chữ “Trường Đại học Sư phạm Kỹ thuật Hưng Yên – Khoa Công
nghệ thông tin” liên tục chạy trên thanh tiêu đề cho đến khi người dùng click nút
“Dừng” Tốc độ cuộn là 100 miligiây ! (Interval = 100)
Bài 17: Sử dụng Timer, viết chương trình “đồng hồ báo thức”
Xây dựng chương trình để chơi một file nhạc (WAV, MP3) tại một thời điểm đã định Trong đó, thời gian chỉ định (gồm giờ : phút) có thể thay đổi và tên file nhạc cũng có thể thay đổi
Hình 2.17 – Giao diện chương trình “Đồng hồ báo thức”
Bài 18: Sử dụng điều khiển Timer kết hợp với điều khiển Line vẽ đồng hồ Digital trên form (Đồng hồ này chỉ cần có một kim giây)
Hình 2.18 - Đồng hồ điện tử
Trang 9Bài 19: Sử dụng điều khiển Timer để ghi nhận các phím nhấn – KeyLogger
a Giao diện
Hình 2.19 -Giao diện chương trình bắt phím từ các ứng dụng khác- KeyLogger
b Yêu cầu
• Ghi nhận phím nhấn ở bất kỳ ứng dụng nào trong hệ thống
• Khi người dùng click chọn nút “Kết thúc” thì lưu các phím nhấn đã ghi nhận được vào trong tệp văn bản C:\Keys.txt
Bài 20: Minh hoạ sử dụng các điều khiển thao tác Tệp, Thư mục và Ổ đĩa
a Giao diện chương trình:
Hình 2.20 – Giao diện chương trình và kết qủa khi click "Xem kích thước file"
b Yêu cầu:
• Mở file hiện hành (đang được chọn) khi người dùng click nút "Mở file này" hoặc Click đúp một file
• Xem kích thước file đang được chọn khi chọn nút “Xem kích thước file”
• Xoá file đang được chọn (cần hỏi người dùng xác nhận lại trước khi xoá)
• Thoát khỏi chương trình khi người dùng click nút "Thoát"
Trang 10Bài 21: Minh hoạ khả năng kéo thả (Drag-Drop) file và thư mục
và thả vào nút "Xoá file này" thì thực hiện Xoá file đang được chọn
Bài 22: Thao tác với điều khiển FileListbox và khả năng đa lựa chọn
a Giao diện chương trình
Hình 2.22 - Chọn nhiều file trong FileListbox
b Yêu cầu:
• Cho phép chọn nhiều file trong điều khiển FileListbox
• Khi click vào nút thì thực hiện chèn đường dẫn và tên file của những file đang được chọn vào trong Listbox phía bên phải Sau đó hiển thị tổng số file
và tổng kích thước của các file có trong Listbox
Trang 11Bài 23: Sử dụng điều khiển Image làm ảnh nền cho form
a Giao diện chương trình
Hình 2.23 - Đặt ảnh nền cho Form bằng điều khiển Image
b Yêu cầu:
• Khi người dùng Click nút “Chọn file ảnh cho Form” thì mở hộp thoại chọn file
và nạp file đó vào điều khiển Image
• Khi người dùng Click nút “Huỷ bỏ ảnh nền” thì huỷ ảnh trong điều khiển Image
Bài 24:Sử dụng điều khiển PictureBox tạo Icon tại khay hệ thống (SystemTray)
a Giao diện
Hình 2.24 - (Hiện menu khi click chuột phải)
b Yêu cầu
• Đặt một biểu tượng (bất kỳ) dưới khay hệ thống như hình 24
• Khi người dùng click chuột phải lên biểu tượng trên khay hệ thống thì hiển thị (Popup) menu như hình 24
• Khi người dùng click chọn mục "About" thì hiển thị một thông báo
• Khi người dùng click chọn mục Exit thì thoát khỏi chương trình
• Form phải được ẩn (Hide)
• Yêu cầu thêm: Có thể tạo biểu tượng nhấp nháy (thay đổi liên tục biểu tượng)
ở dưới khay hệ thống (HD: Dùng một timer)
Trang 12B- HƯỚNG DẪN - GIẢI MẪU
Bài 1
a Thiết kế giao diện và thiết lập các thuộc tính cho các điều khiển (Lưu ý: Từ nay về
sau, tên của các điều khiển được viết ở ngay cạnh điều khiển đó Riêng với điều khiển Label nào mà không thực sự cần thiết thì tên có thể để mặc định - bỏ qua)
Hình 2.25 - Đặt tên cho các điều khiển trên Form
b Hướng dẫn
• Để lấy giá trị người dùng nhập trong Textbox, có thể truy cập thuộc tính Text,
ví dụ: txtA.Text để lấy giá trị người dùng đã nhập trong hộp Textbox hệ số a
• Có thể sử dụng cấu trúc If…Then nhưng với VB thì cấu trúc Select Case là
phù hợp hơn cả
c Chương trình mẫu:
Private Sub cmdThucHien_Click()
Dim Delta As Single
lblX1.Caption = "X1 = " & (-txtB.Text / 2 / txtA.Text)
lblX2.Caption = "X2 = " & (-txtB.Text / 2 / txtA.Text)
• Trong cấu trúc Select Case, nếu muốn thực hiện một công việc ứng với biểu
thức cần kiểm tra nằm trong một miền giá trị thì có thể sử dụng từ khoá "IS"
• Cấu trúc Select Case <ĐK> không chỉ làm việc với biểu thức <ĐK> ở dạng số
mà còn cả dạng xâu ký tự (nhiều ngôn ngữ khác không có khả năng này)
Trang 13• Giá trị trong textbox luôn được VB coi là một XÂU Tuy nhiên, nếu các giá trị trong Textbox tham gia vào các phép tính +,-, *, /, với một số khác thì xâu tự
động được chuyển thành số theo ngầm định Do vậy, chúng ta không nhất
thiết phải chuyển đổi chúng tường minh bằng hàm Val Trong trường hợp,
nếu phép toán là + (Cộng) mà 2 toán hạng tham gia đều là các Textbox thì bắt buộc phải chuyển đổi chúng về số bằng hàm Val trước khi cộng
Bài 2:
a Giao diện và thiết lập tham số cho các điều khiển: Tên của các điều khiển được
đặt như trong hình 26 Trong đó có một điều khiển chuyên dùng cho nhập ngày tháng rất thuận tiện là Date Time Picker (nằm trong thư viện : Microsoft Windows Common Control-2 6.0)
Hình 2.26 – Đặt tên cho các điều khiển trên Form
b Hướng dẫn
Trong VB, tất cả các điều khiển đều nằm trong một tập hợp (Collection) là Controls
Ta có thể duyệt tất cả các điều khiển trong tập hợp này bằng cấu trúc lặp
"For….Each…in Controls", tại mỗi vòng lặp ta có thể kiểm tra xem điều khiển hiện tại
thuộc loại nào ? Nếu là điều khiển Textbox hay ComboBox thì đặt thuộc tính Text bằng rỗng (tức là xoá)
c Chương trình nguồn
Viết lệnh cho sự kiện Click của nút nhấn cmdXoa
Private Sub cmdXoa_Click()
Dim obj As Object
For Each obj In Me.Controls
Trang 14If (TypeOf obj Is TextBox) Or (TypeOf obj Is ComboBox) Then
• Để kiểm tra xem một đối tượng X nào đó thuộc loại điều khiển nào, có thể
dùng từ khoá TypeOf X Is…TextBox, ListBox, ComboBox, CheckBox, Frame,
Label, Form, adodc,…
• Khi biến chạy X đang trỏ đến một loại điều khiển nào đó thì có thể sử dụng tất
cả các thuộc tính, phương thức của đối tượng thông qua biến chạy X Ví dụ
nếu TypeOf X is ListBox là đúng (True) thì ta có thể truy cập đến thuộc tính
Text và name của Listbox bằng cách viết X.Text, X.Name hay có thể truy cập đến phương thức AddItem bằng cách viết X.AddItem …
• Việc duyệt các phần tử trong một tập hợp rất hay được sử dụng và hữu ích,
do vậy chúng ta cần sử dụng tốt cấu trúc duyệt này
• Việc xoá trắng các Textbox, ComboBox theo cách trên không phục thuộc vào
số lượng và tên của các phần tử trong Form, do vậy không phải sửa đổi chương trình nguồn khi thay đổi các phần tử trên form
Bài 3
a Giao diện và thiết lập thông số cho các điều khiển
Hình 2.27 - Đặt tên cho các điều khiển
b Hướng dẫn: Sử dụng phương thức AddItem để thêm và phương thức RemoveItem để loại bỏ một mục khỏi danh sách Ngoài ra còn có thể dùng thuộc
tính ListIndex để lấy về chỉ số của phần tử đang được chọn
c Chương trình nguồn
Form1.frm
Private Sub cmdThem_Click()
lstDanhSach.AddItem txtHoTen.Text, 0 '/// 0 = Thªm vµo ®Çu danh s¸ch
Trang 15• Thuộc tính Text cho ta giá trị của phần tử hiện hành (đang được chọn)
• Thuộc tính List(i) sẽ cho ta giá trị của phần tử có chỉ số là i
• Mặc định phương thức AddItem của điều khiển Listbox thêm mục mới vào cuối danh sách, do vậy nếu muốn thêm vào đầu danh sách thì cần truyền giá trị 0 (vị trí đầu tiên) vào phương thức AddItem
• Phương thức RemoveItem dùng để loại bỏ 1 mục khỏi danh sách Phần tử hiện đang được chọn có chỉ số là ListIndex
• Khi danh sách rỗng thì thuộc tính ListCount = 0 và ListIndex = - 1
• Có thể chèn một số mục vào trong Listbox hay ComboBox trong lúc thiết kế
bằng cách nhập vào thuộc tính "List" (Xem hình 23) Tại đây nếu muốn nhiều
mục thì sau mỗi lần nhập, nhấn tổ hợp phím Ctrl+Enter:
Hình 2.28 - Nhập liệu cho Listbox trong lúc thiết kế (Nhấn Ctrl-Enter để xuống dòng)
Bài 4
a Thiết kế giao diện và thiết lập thông số cho các điều khiển trên Form
Hình 2.29 - Đặt tên và thuộc tính cho các điều khiển trên Form
Trang 16b Hướng dẫn: Sử dụng thuộc tính Selected(i) để kiểm tra liệu mục chỉ số i có được
chọn (Check) hay không Nếu có thì gọi phương thức RemoveItem để xóa Lưu ý rằng, khi xoá đi thì số phần tử trong danh sách sẽ bị thay đổi, do vậy không nên sử
dụng vòng lặp For mà nên sử dụng vòng lặp Do While Đồng thời khi duyệt thì nên
duyệt từ cuối danh sách (từ phần tử có chỉ số lớn nhất là ListCount – 1)
c Chú ý: Với cấu trúc If…Then, nếu sau Then chỉ có một lệnh thì có thể viết câu
lệnh đó cùng dòng với lệnh If…Then mà không cần phải có lệnh kết thúc End If
Bài 5
a Giao diện và thiết lập thuộc tính cho các điều khiển trên Form
Hình 2.30 - Đặt thuộc tính cho các điều khiển
b Hướng dẫn: Sử dụng vòng lặp và kiểm tra từng mục xem có được chọn hay
không, nếu được chọn thì thêm vào danh sách lstNguoiNhan ở đây vì nội dung trong lstDanhSach không bị thay đổi nên có thể sử dụng bất kỳ cấu trúc lặp nào
Trang 17• lstDanhSach.List(i) : lấy nội dung của mục i trong lstDanhSach
• If lstNguoiNhan.ListIndex >= 0 Then…để đảm bảo chỉ xoá khi một mục được chọn
• Khi đặt thuộc tính MultiSelect là 2 – Extended thì người dùng có thể chọn nhiều mục liền hoặc rời nhau của ListBox bằng chuột và bàn phím
Bài 6
a Giao diện và đặt thuộc tính cho các điều khiển trên Form
Hình 2.31 – Giao diện và đặt tên cho điều khiển
b Hướng dẫn Có rất nhiều phương pháp để đưa phần tên lên trước họ đệm, tuy
nhiên trong bài này xin giới thiệu một cách khác thông qua hàm xử lý xâu ký tự
SPLIT Việc tách Tên lên trước của một xâu S có thể mô tả như ví dụ sau:
Mảng Xâu vào cần đảo tên
Trang 18- Trước tiên xâu vào sẽ được phân tách và lấy từng từ bên trong nó nhờ hàm Split
- Tiếp theo là đảo phần tử cuối cùng trong mảng lên đầu danh sách
c Chương trình nguồn
Option Explicit
Function DaoTen(HoTen As String) As String
Dim i As Integer, KetQua As String
a Đặt thuộc tính cho các điều khiển trên form
Hình 2.32 – Giao diện và đặt tên cho các điều khiển
b Hướng dẫn
Khi một xâu chứa nhiều phần tử được cách nhau bởi một ký tự hay một xâu con khác, ta có thể dễ dàng tách chúng ra thành các phần tử riêng biệt nhờ hàm Split trong VB Cú pháp của hàm Split như sau: Split (Xâu cần tách S, Xâu phân cách các phần tử trong S) Kết quả trả về của hàm là một mảng Để lưu mảng này, ta cần sử dụng một biến kiểu Variant như trong chương trình mẫu sau đây
Trang 19c.Chương trình mẫu
Option Explicit
'// Viết lệnh cho thủ tục sự kiện click chuột lên nút Tách
Private Sub cmdTach_Click()
Dim i As Integer, S As Variant
• Hàm Ubound(S) trả về số phần tử hiện có trong mảng S
• Trong thực tế cần phải xử lý thêm khi nhận các kết quả từ việc tách xâu S Chẳng hạn như có thể người dùng gõ dấu cách sau dấu chấm phảy hoặc có 2 dấu chấm phảy liền nhau v.v… thì khi đó cần phải cắt các dấu trắng bằng hàm TRIM trước, sau đó kiểm tra xem không rỗng thì mới nhận kết quả
Bài 8
a Giao diện và đặt tên cho các điều khiển trên form
Hình 2.33 – Giao diện chương trình và đặt tên cho các điều khiển
b Hướng dẫn
Theo mặc định, VB so sánh hai chuỗi ký tự từ trái qua phải - tức là sắp xếp Họ sau
đó mới đến tên- do vậy để sắp xếp theo thứ tự ưu tiên Tên trước thì cần phải cắt phần tên và ghép lên đầu Việc cắt tên có rất nhiều cách, nhưng ở đây ta hoàn toàn
có thể áp dụng hàm Split như trong các bài tập trước đây Để cho thuận tiện, ở đây
ta xây dựng một hàm DaoTen, có nhiệm vụ đảo phần "Tên" lên trước Họ
Trang 20c Chương trình mẫu
Option Explicit
'/// Hàm này có chức năng cắt phần tên (ở cuối) đưa lên đầu (tên lên trước họ)
Function DaoTen(HoTen As String) As String
Dim S As Variant, i As Integer, KetQua As String
For i = 0 To UBound(S) – 1 '/// Ghép thêm phần "Họ" và "Đệm"
KetQua = KetQua & Chr(32) & S(i)
'///Thực hiện sắp xếp danh sách trong lstDSSV_SapXep khi người dùng click "Sắp xếp theo TÊN"
Private Sub cmdSapXep_Click()
Dim i As Integer, j As Integer, TG As String
• Giải thuật ở trên chỉ thực hiện sắp xếp đúng đối với Tiếng việt không dấu
Muốn việc sắp xếp ở trên đúng đắn cả với Tiếng việt có dấu thì cần mã hoá lại các ký tự có dấu thành các ký tự không dấu, sau khi sắp xếp xong thì lại giải
mã ngược lại Ví dụ: chữ à, á, ă, ả, ạ thì có thể mã hoá tương ứng thành: aa,
ab, ac, ad, ae, af Việc mã hoá hay giải mã thực chất là việc thay thế ký tự, do vậy ta có thể thực hiện hết sức đơn giản bằng hàm Replace trong VB
• Giải thuật này có thể áp dụng rất tốt trong việc sắp xếp Tiếng việt trong môi trường Word và đặc biệt là trong MS Excel
Trang 21Bài 9
a Giao diện và đặt tên cho các điều khiển trên Form
Hình 2.34 – Giao diện và đặt tên cho các điều khiển
b Hướng dẫn
• Điều khiển Web Browser cho phép chúng ta có thể hiển thị các trang Web giống như trong Internet Explorer hay hiển thị nội dung của một thư mục, một
ổ đĩa giống như Window Explorer hay My Computer
• Điều khiển này nằm trong thư viện:
• Có thể sử dụng phương thức Navigate2 của điều khiển Microsoft Internet Control để mở một thư mục hay một trang Web
c Chương trình mẫu
Option Explicit
'///Nếu người dùng chọn địa chỉ trong danh sách thì mở trang đó
Private Sub cboDiaChi_Click()
webChinh.Navigate2 cboDiaChi.Text
End Sub
' -'/// Nếu người dùng nhập mới sau đó nhấn Enter thì cũng mở
Private Sub cboDiaChi_KeyUp(KeyCode As Integer, Shift As Integer)
• Mã ASCII của phím Enter là 13
• Điều khiển này có thể kết hợp với đối tượng "HTML Microsoft Object Library" (Vào trong Project References) để truy cập và thao tác trực tiếp đến các
thành phần bên trong một trang WEB bằng mã lệnh Visual Basic Có thể truy
cập trang Web http://www.w3schools.com để biết thêm về mô hình truy cập DOM – (Document Object Model)