Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB.NET | 12.02.07 |
Explorer TreeView für VB.NET Mit dieser Klasse für VB.NET lässt sich mit wenig Aufwand ein Explorer TreeView Control erstellen. | ||
Autor: Roland Wutzke | Bewertung: | Views: 34.573 |
www.vb-power.net | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
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
Nachfolgend die Klasse ExpTree:
Fügen Sie Ihrem Projekt eine neue Klasse hinzu, und kopieren den Code in das Klassenmodul. Erstellen Sie einmal das Projekt, um so die Komponente zu erzeugen. VB.NET stellt die neue
Komponente automatisch in die ToolBox oben ein. Sie können jetzt die so neu erzeugte Komponente auf Ihre Form ziehen und damit wie gewohnt arbeiten.
' ************************************************************** ' * ' * Explorer TreeView Komponenten-Klasse (VB.Net 2005) ' * ' * Diese Klasse stellt ein Explorer TreeView zur Vergügung. ' * Mit der überladenen Methode "ShowTree" wird das TreeView ' * initialisiert. ' * ' * Februar 2007 - VB-Power.net ' * http://www.vb-power.net/ ' * ' ************************************************************** 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
In unserem Demoprogramm zeigen wir Ihnen, wie Sie mit dem TreeView einen einfachen Explorer realisieren können.