Feedback

VB - Explorer TreeView für VB.Net

Veröffentlicht von am 2/11/2007
(1 Bewertungen)
Nachfolgend möchten wir ihnen eine Komponenten Klasse für VB.net vorstellen, die Ihnen ein Explorer TreeView zur Verfügung stellt - und das alles mit nur wenigen Zeilen Code...

Die Klasse stellt die überladene Methode „ShowTree“ bereit, mit der Sie das TreeView initialisieren. Sie habe dabei folgende Möglichkeiten:

·ShowTree() Alle Laufwerke im System
·ShowTree(UNC oder Pfad) angegebenes Verzeichnis
·ShowTree(DriveType) nur spezielle Laufwerke
Option Explicit On
Option Strict On

Imports System.IO

Public Class ExpTree
   Inherits System.Windows.Forms.TreeView

   Public Sub New()
      Me.Sort()
      Me.HotTracking = True
      Me.HideSelection = False
   End Sub

   Public Sub ShowTree()
      For Each d As DriveInfo In DriveInfo.GetDrives
         Me.ShowTree(d.Name)
      Next
   End Sub

   Public Sub ShowTree(ByVal Path As String)
      Dim nNode As New TreeNode(Path)
      Me.Nodes.Add(nNode)
      Me.FillTreeNode(nNode)
   End Sub

   Public Sub ShowTree(ByVal DriveType As DriveType)
      For Each d As DriveInfo In DriveInfo.GetDrives
         If d.DriveType = DriveType Then
            Me.ShowTree(d.Name)
         End If
      Next
   End Sub

   Private Sub FillTreeNode(ByVal dNode As TreeNode)
      Try
         Dim d As New DirectoryInfo(dNode.FullPath)
         For Each di As DirectoryInfo In d.GetDirectories
            Dim nNode As New TreeNode(di.Name)
            dNode.Nodes.Add(nNode)
            nNode.Nodes.Add("")
         Next
      Catch : End Try
   End Sub

   Protected Overrides Sub OnBeforeExpand(ByVal e As System.Windows.Forms.TreeViewCancelEventArgs)
      Dim n As TreeNode = CType(e.Node, TreeNode)
      If n.Nodes(0).Text = "" Then
         Me.BeginUpdate()
         n.Nodes.Clear()
         Me.FillTreeNode(n)
         Me.EndUpdate()
      End If
      MyBase.OnBeforeExpand(e)
   End Sub

End Class

Abgelegt unter Explorer, TreeView, Komponente.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!