投稿者 neptune  (社会人) 投稿日時 2008/10/4 07:19:44
よねKEN さん

続けてアドバイスありがとうございます。

>孫ノードの存在確認なら、子ノードのNodes.Countを見るだけでOKだと思うので、
>任意の孫ノードを取得したい、というのがよくわかりませんでした。
Nodes.Countを思いつきませんでした。

結局こうなりました。
>FirstNodeを使う場合の処理のパターンとしては、
の予想どおりですね。

    
  '勉強中の方々への参考:初級講座 第25回 実技2 フォルダ情報一覧」 
  'これは多分 tvFolders_AfterSelect の代わりになります。 
    '興味があれば試してみて下さい。手直しがあればして下さいね。 
    Private Sub TreeView1_BeforeExpand(ByVal sender As ObjectByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeExpand
        Dim tn As TreeNode = e.Node.FirstNode()     '子ノードの先頭取得 

        'ノードの数だけ実行 
        For i As Integer = 0 To e.Node.Nodes.Count - 1
            If Not tn Is Nothing Then
                Dim dirinfo As DirectoryInfo = New DirectoryInfo(tn.FullPath)
                Try
                    If dirinfo.GetDirectories().Count > 0 Then
                        '子ノードを追加する 
                        AddChildNodes(tn)  '講座の中のAddSubNodesと同じ処理です。 
                    End If
                    Console.WriteLine(tn.Text)
                Catch ex As Exception

                End Try
            End If
            tn = tn.NextNode()
        Next
    End Sub

>これはNodesプロパティから順にノードを列挙し、それに処理をするのと同じで、
 そう言えばそうですね。
 
>> 新バージョンの同じ機能でなんでFirstNodeなんや!firstchildnodeやろ!と思ってしまいます。^ ^; 
>ある階層のノード同士の中で「最初の」ノードだからです。
>今までの命名が理路整然とされていなかったから、その点は改善されたということだと思っています。
確かにその通りではありますが、いわゆる慣れっていう奴の直感が通用しないので、
MSDNを読む時は隅々までよく読めって教訓になったような気がします。

尤も、よく読んでも判らんもんが多いですが。

今回はTreeViewに付いて思い浮かばなかった方法も含め勉強になりました。
ちょっとTreeVieに付いての理解が進んだような気がします。
どうもありがとうございました。