C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: visualbasic2010フォルダ一覧表示に際して


(過去ログ 137 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■80660 / inTopicNo.1)  visualbasic2010フォルダ一覧表示に際して
  
□投稿者/ やまだ (1回)-(2016/07/31(Sun) 16:23:09)

分類:[VB.NET/VB2005 以降] 

VisualBasic2010 フォルダ一覧表示に際して

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click

Dim 名前 As String = ""

For Each node As TreeNode In FolderTreeView.Nodes(0).Nodes
If node.Checked Then
名前 = 名前 & node.Text & Environment.NewLine
End If
Next

If 名前.count=0
MessageBox.Show("ノード要選択", "警告")
Else
MessageBox.Show(名前, "選択フォルダ一覧")
End If

End Sub

上記のコードを用いて、フォルダの一覧表示がされております
フォルダを選択した場合で、出来ない場合がございますので、
ご教授下さい

@何も選択していなければ、ノード要選択とメッセージ表示される
→問題ありません

A上位フォルダを選択したら、選択フォルダ一覧とメッセージ表示
される →問題ありません
(上位フォルダとは、C:\TESTのTESTのみをチェックしています)

B下位フォルダを選択しているのに、ノード要選択と
メッセージ表示されてしまうので、選択フォルダ一覧とメッセージ表示させたい
(下位フォルダとは、C:\TEST\TEST1のTEST1のみを
チェックしています)

Bについて、ご教授下さい

宜しくお願い致します


引用返信 編集キー/
■80663 / inTopicNo.2)  Re[1]: visualbasic2010フォルダ一覧表示に際して
□投稿者/ Azulean (670回)-(2016/07/31(Sun) 17:30:53)
No80660 (やまだ さん) に返信
> For Each node As TreeNode In FolderTreeView.Nodes(0).Nodes

これはツリービューの一番上のノードの 0 番目のノードにぶら下がる子ノードを順番に見ていく処理です。
子ノードがさらに子ノード(孫ノード)を持っていたとしても、それは対象になりません。

子供の子供(孫)、そのさらに子供なども対象にするためには、再帰処理などが必要です。

一例として

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim 名前 As String = ""

    CheckNodes(FolderTreeView.Nodes(0).Nodes, 名前)

    If 名前.Count = 0 Then
        MessageBox.Show("ノード要選択", "警告")
    Else
        MessageBox.Show(名前, "選択フォルダ一覧")
    End If
End Sub

Private Sub CheckNodes(ByVal CurrentNode As TreeNodeCollection, ByRef 名前 As String)
    For Each node As TreeNode In CurrentNode
        If node.Checked Then
            名前 = 名前 & node.Text & Environment.NewLine
        End If
        CheckNodes(node.Nodes, 名前)
    Next
End Sub

引用返信 編集キー/
■80685 / inTopicNo.3)  Re[2]: visualbasic2010フォルダ一覧表示に際して
□投稿者/ やまだ (2回)-(2016/08/02(Tue) 22:47:09)
Azulean様

回答頂きありがとうございました

大変助かりました

また、質問させて頂く時があると思います

よろしくお願いいたします
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -