TreeViewについての質問です。
フォルダを指定して、その内容をツリービューに表示したいと思っています。

+フォルダ1(親ノード)
|−ファイル1(子ノード)
|−ファイル2(子ノード)
|+フォルダ2(子ノード)
 |−ファイル3(孫ノード)

このよう構造のツリービューを作りたいのですが、
TreeView.Nodes.Add(New TreeNode("フォルダ1"))
として、親ノードを作った後に、その下に子ノードを作成し、
さらに孫ノードを・・・と、いう方法がわかりません。

再帰関数を作って、

function MakeTreeView(Byval DirName as String,Byval TreeView as TreeView){

 フォルダ内のファイル一覧を取得する処理
 ツリービューに追加(ファイルの数だけ繰り返し)

 フォルダ内のフォルダを取得する処理
 MakeTreeView関数の呼び出し(フォルダの数だけ繰り返し)
}

というふうにやりたいとおもっているのですが・・・。
ヘルプを見ると
TreeView.Nodes(???).Nodes.Add(New TreeNode("子ノード")
というような書式で追加しているようなのですが、???の部分を
どうすればいいのかわからず悩んでいます。

TreeViewで子ノードを作成する方法をよろしくおねがいします。