- Tham gia
- 13/6/06
- Bài viết
- 4,790
- Được thích
- 10,299
- Giới tính
- Nam
- Nghề nghiệp
- Giáo viên, CEO tại Bluesofts
Tùy biến hiển thị Treeview với màu nền và màu chữ của node được chọn. Sử dụng #BSTreeView trong BSAC.
BSTreeView là control cao cấp trong VBA cho phép hiển thị unicode, chạy với Office 32 và 64 bit, tùy biến hiển thị dễ dàng với màu sắc, font, hình ảnh,....
Mã nguồn ví dụ này:
BSTreeView là control cao cấp trong VBA cho phép hiển thị unicode, chạy với Office 32 và 64 bit, tùy biến hiển thị dễ dàng với màu sắc, font, hình ảnh,....
Mã nguồn ví dụ này:
Mã:
Option Explicit
'http://atoolspro.com
'BSTreeView with AdvancedCustomDrawItem
Private Sub UserForm_Initialize()
Dim n As BSTreeNode
Set n = BSTreeview1.Items.Add(, , "Tuan 1")
BSTreeview1.Items.Add n, , "Tuan 1.1"
BSTreeview1.Items.Add n, , "Tuan 1.2"
Set n = BSTreeview1.Items.Add(n, , "Tuan 1.3")
BSTreeview1.Items.Add n, , "Tuan 1.3.1"
BSTreeview1.Items.Add n, , "Tuan 1.3.2"
BSTreeview1.Items.Add n, , "Tuan 1.3.3"
BSTreeview1.Items.Add , , "Tuan 2"
BSTreeview1.Items.Add , , "Tuan 3"
BSTreeview1.FullExpand 'Show all nodes
End Sub
'Now I will change backcolor of selected node
Private Sub BSTreeview1_OnAdvancedCustomDrawItem(ByVal Node As BSAC.BSTreeNode, _
ByVal State As BSAC.TBSCustomDrawState, _
ByVal Stage As BSAC.TBSCustomDrawStage, _
PaintImages As Long, DefaultDraw As Boolean)
If State And cdsSelected = cdsSelected Then 'Format on selected node
Dim rc As TBSRect
'Get rectangle of node
Node.DisplayRect rc.Left, rc.Top, rc.Right, rc.Bottom, True
'Set color
BSTreeview1.Canvas.Brush.Color = vbRed
'Fill rectangle
BSTreeview1.Canvas.FillRect rc.Left, rc.Top, rc.Right, rc.Bottom
'Draw text
BSTreeview1.Canvas.ForeColor = vbYellow
BSTreeview1.Canvas.Font.Bold = True
BSTreeview1.Canvas.TextOut rc.Left, rc.Top, Node.Text
Else
End If
End Sub