CÔNG TY CỔ PHẦN BLUESOFTS

Hướng dẫn lập trình VB6/VBA tạo ListView unicode với BSAC

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,...