Visual Basic comes with many useful objects. One of
them is TreeView Object that located in Microsoft Windows Common Controls
6.0 (it also contains Tab Strips, Toolbars, Status Bar, Progress Bar,
List View, Slider, Image List and Image Combo).
Each point location of the tree is called Node. The top level node
is the root, only one root is allowed for a tree. The branch node are
called child (use tvwChild relationship to add a child). You use tree
data structure when you want to represent categorical data into hierarchy.
Project: Using TreeView (download the code here)
We are going to assign the tree Figure above into TreeView and sort
the value. This tree has keys (inside the circles), Description, and
Value. Before we make the program, we prepare this tree into an array
(as in table below). The array consists of four rows. The first row
is the parent key of the node. The second row represents the key of
the node, the third row corresponds to the values of the node and the
last row characterized the description of each node. Each column denotes
each node of the tree.
Parent Key
-
R
R
C1
C1
C1
C2
C2
Node Key
R
C1
C2
C11
C12
C13
C21
C22
Node Value
14.2
15.1
12.3
16.3
11.4
19.9
46.2
12.7
Node Description
Root
Child1
Child2
Grandchild1
Grandchild2
Grandchild3
Grandchild4
Grandchild5
By default, the TreeView will sort only string. To sort number correctly,
they must the same digits (e.g. 11.2 and 12.45 have different digit).
Thus we need to format the number before sorting it. After we sort the
number, we add the description text.
1. Open a new standard Exe VB project
2. In the VB Menu Project > Components> scroll down and select
Microsoft Windows Common Controls 6.0 (check the box) and click OK button
3. Drag and drop TreeView Control into Form
4. Copy and paste the following code:
Private Sub Form_Load()
Dim nodX As Node
Dim i As Integer, n As Integer
Dim arr(1 To 4, 1 To 7)
'add the root
Set nodX = TreeView1.Nodes.Add(, , "R", "14.2 Root")
TreeView1.SingleSel = True ‘ to view the children
' put the values into nodes
For i = 1 To 7
Set nodX = TreeView1.Nodes.Add(arr(1, i), tvwChild, arr(2, i), Format(arr(3,
i), "0.0"))
Next i
' sort the nodes
For i = 1 To 8
TreeView1.Nodes(i).Sorted = True
Next i
'add additional description text
'note: node 1 = root, child node start from node 2 etc.
For i = 2 To 8
TreeView1.Nodes(i).Text = "(" & Val(arr(3, i - 1))
& ") " & arr(4, i - 1)
Next i
End Sub
5. Run the program and click the Tree.
There are many other data structures that you can learn by yourself.
Let this short introduction encourage you to learn more about the fun
of programming.