Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27196

VS 2012 Treeview not firing directoryselected event

$
0
0
The only directory nodes that fire a directorySelected event are those directories that have files in them. How do you get that event to fire with empty directories? I put in TreeView1_DoubleClick and that responds, but then I can't get the name of the directory.

Here is most of the code showing the directories. The last sub, "OnNodeSelected" is the one that does not fire if the directory is empty.

If you want to see the entire FileTree code from Windows Dev Center look here http://code.msdn.microsoft.com/windo...-View-3a28325c
Thanks

<Description("Notifies when directory is selected either by clicking or expanding.")>
<Category("Behavior")>
Public Event DirectorySelected As EventHandler(Of DirectoryInfoEventArgs)


''' <summary>
''' Creates directory tree for expanded drive node.
''' </summary>
Private Overloads Sub CreateDirectoryTree(ByVal node As DriveNode)
If (IsReady(node.Drive) = True) Then

Dim remove As New List(Of DirectoryNode)

For Each dirNode As DirectoryNode In node.DirectoryNodes
Try
Dim directories = dirNode.Directory.GetDirectories()
CreateDirectoryTree(dirNode, directories)
CreateFileTree(dirNode)
Catch ex As UnauthorizedAccessException
If (HideUnauthorizedDirectories = True) Then
remove.Add(dirNode)
End If
Continue For
End Try
Next

If (HideUnauthorizedDirectories = True) Then
For Each dirNode As DirectoryNode In remove
node.Nodes.Remove(dirNode)
Next
End If
End If
End Sub

''' <summary>
''' Creates directory tree for exanded directory node.
''' </summary>
Private Overloads Sub CreateDirectoryTree(ByVal node As DirectoryNode)

Dim remove As New List(Of DirectoryNode)

For Each dirNode As DirectoryNode In node.DirectoryNodes
Try
Dim directories = dirNode.Directory.GetDirectories()

CreateDirectoryTree(dirNode, directories)
CreateFileTree(dirNode)
Catch ex As UnauthorizedAccessException
If (HideUnauthorizedDirectories = True) Then
remove.Add(dirNode)
End If
Continue For
End Try
Next

If (HideUnauthorizedDirectories = True) Then
For Each dirNode As DirectoryNode In remove
node.Nodes.Remove(dirNode)
Next
End If

End Sub



''' <summary>
''' Gets directories of the provided drive.
''' </summary>
Private Function GetDirectories(ByVal drive As DriveInfo) As IEnumerable(Of DirectoryInfo)

Dim directories As New List(Of DirectoryInfo)

Dim directoryNames() As String = Directory.GetDirectories(drive.Name)

For Each directoryName As String In directoryNames
Dim directory As New DirectoryInfo(directoryName)

If (directory.Exists) Then
directories.Add(directory)
End If
Next

Return directories

End Function



''' <summary>
''' Raises DirectorySelected event.
''' </summary>
Public Sub OnDirectorySelected(ByVal directory As DirectoryInfo)
RaiseEvent DirectorySelected(Me, New DirectoryInfoEventArgs(directory))

End Sub



''' <summary>
''' Executed when node is selected.
''' </summary>
Private Sub OnNodeSelected(ByVal node As FileSystemNode)
Select Case node.NodeType
Case FileSystemNodeType.Drive
Dim drive As DriveInfo = CType(node, DriveNode).Drive
OnDriveSelected(drive)
Case FileSystemNodeType.Directory
Dim directory As DirectoryInfo = CType(node, DirectoryNode).Directory
OnDirectorySelected(directory) '********here is directory selectec
DiretaSelecta = directory.FullName
frmAddorIncludeFolder.Label1.Text = "Folder Selected -" & DiretaSelecta

Case FileSystemNodeType.File
Dim file As FileInfo = CType(node, FileNode).File
OnFileSelected(file)
End Select
End Sub

Viewing all articles
Browse latest Browse all 27196

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>