Да, для этого потребуется пользовательский рисунок.
TreeView1.DrawMode = TreeViewDrawMode.OwnerDrawAll
Затем вам нужно обработать событие DrawNode.См. Событие TreeView.DrawNode
Параметр DrawTreeNodeEventArgs
в событии DrawNode
содержит графический объект, который можно использовать для рисования чего угодно, от изображений до текста.
Конечно, как только вы пойдете на заказ, вы несете ответственность за рисование всего (к сожалению).См. VisualStyles относительно получения правильных глифов TreeView.
Простая иллюстрация:
Private Sub TreeView1_DrawNode(ByVal sender As Object, ByVal e As DrawTreeNodeEventArgs) Handles TreeView1.DrawNode
Dim nodeLeft As Integer = (e.Node.Level * 16) + 16
e.Graphics.DrawImage(ImageOne, nodeLeft, e.Bounds.Top)
e.Graphics.DrawImage(ImageTwo, nodeLeft + 16, e.Bounds.Top)
e.Graphics.DrawString(e.Node.Text, Me.Font, Brushes.Black, nodeLeft + 32, e.Bounds.Top)
End Sub
В этом примере отсутствует код для рисования элементов управления деревом и состояния выбора,но он показывает два изображения и текст узла.Пользовательский рисунок TreeViews много работы.