Option Strict On Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents ListBox1 As System.Windows.Forms.ListBox Friend WithEvents bttnScan As System.Windows.Forms.Button Friend WithEvents GlobeTree As System.Windows.Forms.TreeView 'Required by the Windows Form Designer Private components As System.ComponentModel.Container 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. Private Sub InitializeComponent() Me.bttnScan = New System.Windows.Forms.Button() Me.ListBox1 = New System.Windows.Forms.ListBox() Me.GlobeTree = New System.Windows.Forms.TreeView() Me.SuspendLayout() ' 'bttnScan ' Me.bttnScan.Font = New System.Drawing.Font("Verdana", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(161, Byte)) Me.bttnScan.Location = New System.Drawing.Point(8, 218) Me.bttnScan.Name = "bttnScan" Me.bttnScan.Size = New System.Drawing.Size(328, 32) Me.bttnScan.TabIndex = 2 Me.bttnScan.Text = "Scan Tree" ' 'ListBox1 ' Me.ListBox1.Font = New System.Drawing.Font("Verdana", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(161, Byte)) Me.ListBox1.ItemHeight = 14 Me.ListBox1.Location = New System.Drawing.Point(344, 8) Me.ListBox1.Name = "ListBox1" Me.ListBox1.Size = New System.Drawing.Size(272, 242) Me.ListBox1.TabIndex = 1 ' 'GlobeTree ' Me.GlobeTree.Font = New System.Drawing.Font("Verdana", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(161, Byte)) Me.GlobeTree.ImageIndex = -1 Me.GlobeTree.Location = New System.Drawing.Point(8, 8) Me.GlobeTree.Name = "GlobeTree" Me.GlobeTree.SelectedImageIndex = -1 Me.GlobeTree.Size = New System.Drawing.Size(328, 208) Me.GlobeTree.TabIndex = 0 ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(624, 253) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.bttnScan, Me.ListBox1, Me.GlobeTree}) Me.Name = "Form1" Me.Text = "TreeView Recursive Scan" Me.ResumeLayout(False) End Sub #End Region ' In the form's Load event handler we add a number of nodes to the control Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ContinentNode As TreeNode Dim CountryNode As TreeNode GlobeTree.Nodes.Add("GLOBE") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("Europe") CountryNode = ContinentNode.Nodes.Add("Germany") CountryNode.Nodes.Add("Berlin") CountryNode.Nodes.Add("Munich") CountryNode.Nodes.Add("Bayreuth") CountryNode.Nodes.Add("Frankfurt") CountryNode = ContinentNode.Nodes.Add("France") CountryNode.Nodes.Add("Paris") CountryNode.Nodes.Add("Nice") CountryNode.Nodes.Add("Lyon") CountryNode = ContinentNode.Nodes.Add("Italy") CountryNode.Nodes.Add("Rome") CountryNode.Nodes.Add("Venice") CountryNode.Nodes.Add("Napoli") CountryNode.Nodes.Add("Florence") CountryNode.Nodes.Add("Milan") CountryNode = ContinentNode.Nodes.Add("Spain") CountryNode.Nodes.Add("Madrid") CountryNode.Nodes.Add("Barcelona") CountryNode.Nodes.Add("Malaga") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("Asia") CountryNode = ContinentNode.Nodes.Add("China") CountryNode.Nodes.Add("Bejing") CountryNode.Nodes.Add("Nanjing") CountryNode.Nodes.Add("Hong Kong") CountryNode = ContinentNode.Nodes.Add("Japan") CountryNode.Nodes.Add("Tokyo") CountryNode.Nodes.Add("Osaka") CountryNode.Nodes.Add("Kobe") CountryNode.Nodes.Add("Kyotto") CountryNode.Nodes.Add("Sapporo") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("Africa") CountryNode = ContinentNode.Nodes.Add("Egypt") CountryNode.Nodes.Add("Cairo") CountryNode.Nodes.Add("Alexandria") CountryNode = ContinentNode.Nodes.Add("Libya") CountryNode.Nodes.Add("Tripoli") CountryNode = ContinentNode.Nodes.Add("South Africa") CountryNode.Nodes.Add("Johannesburg") CountryNode.Nodes.Add("Pretoria") CountryNode = ContinentNode.Nodes.Add("Zimbabwe") CountryNode.Nodes.Add("Harare") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("Oceania") CountryNode = ContinentNode.Nodes.Add("Australia") CountryNode.Nodes.Add("Sidney") CountryNode.Nodes.Add("Melbourne") CountryNode.Nodes.Add("Adelaida") CountryNode.Nodes.Add("Brisbane") CountryNode.Nodes.Add("Canberra") CountryNode = ContinentNode.Nodes.Add("New Zealand") CountryNode.Nodes.Add("Wanaka") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("N. America") CountryNode = ContinentNode.Nodes.Add("USA") CountryNode.Nodes.Add("New York") CountryNode.Nodes.Add("Las Vegas") CountryNode.Nodes.Add("Chicago") CountryNode.Nodes.Add("Washington") CountryNode.Nodes.Add("Durham") CountryNode.Nodes.Add("San Francisco") CountryNode = ContinentNode.Nodes.Add("Canada") CountryNode.Nodes.Add("Toronto") CountryNode.Nodes.Add("Vancouver") CountryNode.Nodes.Add("Montreal") CountryNode.Nodes.Add("Halifax") CountryNode.Nodes.Add("Calgary") CountryNode = ContinentNode.Nodes.Add("Mexico") CountryNode.Nodes.Add("Mexico City") ContinentNode = GlobeTree.Nodes(0).Nodes.Add("S. America") CountryNode = ContinentNode.Nodes.Add("Argentina") CountryNode.Nodes.Add("Buenos Aires") CountryNode = ContinentNode.Nodes.Add("Peru") CountryNode.Nodes.Add("Lima") CountryNode = ContinentNode.Nodes.Add("Colombia") CountryNode.Nodes.Add("Bogota") End Sub Private Sub bttnScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttnScan.Click ScanNode(GlobeTree.Nodes(0)) End Sub Sub ScanNode(ByVal node As TreeNode) Dim thisNode As TreeNode Static IndentLevel As Integer Application.DoEvents() ListBox1.Items.Add(Space(IndentLevel) & node.Text) If node.Nodes.Count > 0 Then IndentLevel += 5 For Each thisNode In node.Nodes ScanNode(thisNode) Next IndentLevel -= 5 End If End Sub End Class