Hướng dẫn lập trình VB6/VBA tạo ListView unicode trên Form
ListView cũ của Microsoft lập trình cho VB6, VBA không hỗ trợ unicode, 64-bit, họ đã dừng phát triển. BSAC với BSListView là giải pháp thay thế để hỗ trợ unicode và 64-bit cùng với nhiều thuộc tính mới nhất.
1. Cài đặt activex BSAC.ocx cho lần đầu. Nếu cài Add-in A-Tools sẽ tự động cài. Nếu bạn muốn tải riêng BSAC thì vào đây:
https://atoolspro.com/products/bsac-bluesofts-activex-controls.html
2. Nhúng activex BSAC vào project
+ Trong VB6:
- Tạo Project
- Vào menu Project->Components: tìm và chọn BSAC.ocx
(BSAC 32-bit tại C:\Windows\SysWow64\)
+ Trong VBA:
- ALT+F11 (Vào Visual Basic Application)
- Vào menu Insert->Userform
- Vào menu Tools->References...: tìm và chọn BSAC.ocx
(BSAC 32-bit: tại C:\Windows\SysWow64\
BSAC 64-bit: tại C:\Windows\System32\)
Xem thêm tại: https://atoolspro.com/install-activex-controls-bsac-manually.html
3. Tạo giao diện có ListView trên Form/Userform
- Kéo thả BSListView vào Form/Userform. Chỉnh kích thước , vị trí phù hợp
- Kéo BSButton vào form, đặt Name: "cmdAdd", Text: "Thêm"
- Kéo BSButton vào form, đặt Name: "cmdRemove", Text: Xóa"
- Kéo BSImageList vào form (để lưu icon hiển thị cho BSListView). Nhấp chuột phải, chọn Properties, chọn (Custom) trong cửa sổ Properties, nạp các ảnh (icon, jpec, png...) vào điều khiển.
Thiết lập Font các control là "Tahoma".
4. Lập trình hiển thị ListView có unicode với control BSListView
'SOURCE CODE BEGIN--------
Option Explicit
'BSAC.BSListView: create ListView with unicode
'Use UNC() convert VNI/TCVN3 to unicode
Private Sub cmdAdd_OnClick()
'Add row (BSListItem)
Dim li As BSListItem, I As Long
I = BSListView1.Items.Count
Set li = BSListView1.Items.Add(UNC("NguyÔn Duy Tu©n ") & I + 1, 0)
'Add column
li.SubItems.Add "01-01-1990", 1
li.SubItems.Add UNC("Tæng hîp d÷ liÖu"), 2
End Sub
Private Sub cmdRemove_OnClick()
BSListView1.Selected.Delete
End Sub
Private Sub UserForm_Initialize()
'Setup BSListView
'Thiet lap ImageList to BSListView
Set BSListView1.ImageList = BSImageList1
BSListView1.View = vsReport
BSListView1.RowSelect = True
'Add columns to BSListView
'Column: Caption, Width, ImageIndex
' Caption: use UNC() convert VNI/TCVN3 to unicode
Dim lc As BSListColumn
Set lc = BSListView1.Columns.Add(UNC("Hä Vµ Tªn"), 150, 0)
Set lc = BSListView1.Columns.Add(UNC("Ngµy Sinh"), 120, 1)
lc.Alignment = taCenter
Set lc = BSListView1.Columns.Add(UNC("Chøc Vô"), 120, 2)
End Sub
'Nếu VB6 thay tên sự kiện "
UserForm_Initialize()" thành "
Form_Load()"
'SOURCE CODE END--------
Sau khi chạy bạn được màn hình như hình sau:
BSAC.ocx là một activex hỗ trợ unicode, hỗ trợ 32-bit, 64-bit với đầy đủ controls như BSListView, BSTreeView, BSImageList, BSTaskPane,...