GUI Applications VB.Net Tutorial

Imports System.ComponentModel
Imports System.Drawing
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
Imports System.IO
public class TreeViewFileFolder
   public Shared Sub Main
        Application.Run(New Form1)
   End Sub
End class
Public Class Form1
    Inherits System.Windows.Forms.Form
    Public Sub New()
        MyBase.New()
        InitializeComponent()
    End Sub
    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
    Private components As System.ComponentModel.IContainer
    Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
     Private Sub InitializeComponent()
        Me.TreeView1 = New System.Windows.Forms.TreeView
        Me.SuspendLayout()
        '
        'TreeView1
        '
        Me.TreeView1.Location = New System.Drawing.Point(16, 15)
        Me.TreeView1.Name = "TreeView1"
        Me.TreeView1.Size = New System.Drawing.Size(544, 273)
        Me.TreeView1.TabIndex = 0
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(8, 18)
        Me.ClientSize = New System.Drawing.Size(587, 309)
        Me.Controls.Add(Me.TreeView1)
        Me.ResumeLayout(False)
    End Sub
    Public Function BuildDirectory(ByVal aNode As TreeNode) As String
        Dim theNode As TreeNode = aNode
        Dim strDir As String = ""
        While Not (theNode Is Nothing)
            If theNode.Text.Substring((theNode.Text.Length - 1)) <> "\" Then
                strDir = "\" + strDir
            End If
            strDir = theNode.Text + strDir
            theNode = theNode.Parent
        End While
        Return strDir
    End Function
    Public Sub PopulateNode(ByVal aNode As TreeNode, ByVal strDir As String)
        Me.Cursor = Cursors.WaitCursor
        Dim Dir As Directory 
        Dim count As Integer = 0
        Dim M_STRfILTER = "*.*"
        Dim i As Integer
        For i = 0 To (Dir.GetDirectories(strDir).Length) - 1
            Dim ChildNode As New TreeNode(Dir.GetDirectories(strDir)(i).ToString, 1, 0)
            i = aNode.Nodes.Add(ChildNode)
            count += 1
        Next i
        For i = 0 To (Dir.GetFiles(strDir, M_STRfILTER).Length) - 1
            Dim ChildNode As New TreeNode(Dir.GetFiles(strDir, M_STRfILTER)(i).ToString, 2, 2)
            i = aNode.Nodes.Add(ChildNode)
        Next i
        aNode.Expand()
        Me.Cursor = Cursors.Arrow
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim oNode As New System.Windows.Forms.TreeNode()
        Try
            oNode.ImageIndex = 0
            oNode.SelectedImageIndex = 0
            oNode.Text = "C:\"
            TreeView1.Nodes.Add(oNode)
            'oNode.Nodes.Add("")
        Catch ex As Exception
            Console.WriteLine("Cannot create initial node:" & ex.ToString)
        End Try
    End Sub
    Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        Text = e.Node.Text
        If Directory.Exists(e.Node.Text) = True Then PopulateNode(e.Node, e.Node.Text)
        If File.Exists(e.Node.Text) = True Then MsgBox(e.Node.Text)
    End Sub
    
End Class