1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Private Sub treeView1_NodeMouseClick(ByVal sender As Object, ByVal e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
Dim newSelected As TreeNode = e.Node
ListView1.Items.Clear()
Dim nodeDirInfo As DirectoryInfo = CType(newSelected.Tag, DirectoryInfo)
Dim subItems() As ListViewItem.ListViewSubItem
Dim item As ListViewItem = Nothing
Dim dir As DirectoryInfo
For Each dir In nodeDirInfo.GetDirectories()
item = New ListViewItem(dir.Name, 0)
subItems = New ListViewItem.ListViewSubItem() {New ListViewItem.ListViewSubItem(item, "Directory"), New ListViewItem.ListViewSubItem(item, _
dir.LastAccessTime.ToShortDateString())}
item.SubItems.AddRange(subItems)
ListView1.Items.Add(item)
Next dir
Dim file As FileInfo
For Each file In nodeDirInfo.GetFiles()
item = New ListViewItem(file.Name, 1)
subItems = New ListViewItem.ListViewSubItem() {New ListViewItem.ListViewSubItem(item, "File"), New ListViewItem.ListViewSubItem(item, _
file.LastAccessTime.ToShortDateString())}
item.SubItems.AddRange(subItems)
ListView1.Items.Add(item)
Next file
ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
End Sub
'Selection des checkbox avec heritage aux sous dossiers:
Private Sub CheckAllChildNodes(TreeNode As TreeNode, nodeChecked As Boolean)
Dim node As TreeNode
For Each node In TreeNode.Nodes
node.Checked = nodeChecked
If node.Nodes.Count > 0 Then
'Si le nud actuel possède des nuds enfant, appelez la méthode CheckAllChildsNodes récursive.
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next (node)
End Sub
Private Sub node_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterCheck
'Le code s'exécute uniquement si l'utilisateur a provoqué l'état activé au changement .
If e.Action <> TreeViewAction.Unknown Then
If e.Node.Nodes.Count > 0 Then
'Appelle la méthode de CheckAllChildNodes, en passant dans le courant
'valeur Analyse du TreeNode dont vérifié l'état changé.
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
End If
End Sub
Private Sub treeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck
'affiche dans lbSélection les items de treeview1 qui seront "checké"
If e.Node.Checked Then ListBox1.Items.Add(e.Node.FullPath)
'efface dans ListBox1 les items de TreeView1 qui seront "déchecké"
If e.Node.Checked = False Then ListBox1.Items.Remove(e.Node.FullPath)
End Sub |
Partager