|
| |

VB.NET - Ein- und Umsteiger| Re: Treeview Nodes | |  | | Autor: Eckhard | | Datum: 02.04.05 22:14 |
| Hallo,
zunächst nochmal vielen dank für dieses Beispiel!!
Ich habe es eben mal zusammengebaut und gestartet, hatte allerdings keinen Erfolg - schade.
Das Beispiel zeigte nach dem Start die Form so an, wie sie erstellt wurde - nachdem der Button geklickt wurde, kam nur eine Fehlermeldung. Nach dem "Continue" wurde nach einem Klick im Tree, die Meldung aus der MyTreeNode-Classe ausgegeben.
Den Pfad zu dem Verzeichnis habe ich angepasst.
Das ganze sieht jetzt so aus:
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Collections
Namespace Tree1
Public Class MainForm
Inherits System.Windows.Forms.Form
Private label1 As System.Windows.Forms.Label
Private button1 As System.Windows.Forms.Button
Private treeView1 As System.Windows.Forms.TreeView
Public Shared Sub Main
Dim fMainForm As New MainForm
fMainForm.ShowDialog()
End Sub
Public Sub New()
MyBase.New
'
Dim imgList As ImageList
Dim idx As Integer
Dim imgRoot As String = "E:\PCS"
Private Sub Button1Click(sender As System.Object, e As System.EventArgs)
Dim root As New MyTreeNode("My Images", MyTreeNode.NodeType.IsRootNode, 0)
Me.imgList.Images.Clear()
idx = 0
imgList.Images.Add(New Bitmap(4, 4))
Me.TreeView1.ImageList = imgList
Me.TreeView1.BeginUpdate()
Me.TreeView1.Nodes.Add(root)
Me.SearchImages(imgRoot, root.Nodes)
' SearchImages(imgRoot, root.Nodes)
Me.TreeView1.EndUpdate()
End Sub
Private Sub FillImageListAndNode(ByVal fileName As String, _
ByRef NodeColl As TreeNodeCollection)
Dim img As Image = Image.FromFile(fileName)
imgList.Images.Add(img)
idx += 1
NodeColl.Add(New MyTreeNode(fileName, MyTreeNode.NodeType.IsImage, idx))
End Sub
Private Sub GetImages(ByVal Dir As String, _
ByRef NodeColl As TreeNodeCollection)
For Each f As String In IO.Directory.GetFiles(Dir)
FillImageListAndNode(f, NodeColl)
Next
End Sub
Private Sub SearchImages(ByVal Dir As String, _
ByRef NodeColl As TreeNodeCollection)
Dim tn As New MyTreeNode(Dir, MyTreeNode.NodeType.IsFolder, 0)
GetImages(Dir, tn.Nodes)
NodeColl.Add(tn)
For Each d As String In IO.Directory.GetDirectories(Dir)
SearchImages(d, tn.Nodes)
Next
End Sub
Private Sub MainFormLoad(sender As System.Object, e As System.EventArgs)
imgList = New ImageList
End Sub
Private Sub TreeView1AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs)
Dim tn As MyTreeNode = CType(Me.TreeView1.SelectedNode, MyTreeNode)
Me.Label1.Text = "INFO: " + tn.ToString()
End Sub
End Class
Public Class MyTreeNode
Inherits TreeNode
Public TreeNodeType As NodeType
Public Sub New(ByVal Text As String, _
ByVal NodeType As NodeType, _
ByVal ImageIndex As Integer)
Me.Text = Text
Me.TreeNodeType = NodeType
Me.ImageIndex = ImageIndex
Me.SelectedImageIndex = Me.ImageIndex
End Sub
Public Enum NodeType
IsFolder
IsImage
IsRootNode
End Enum
Public Overrides Function ToString() As String
Return String.Format( _
"Text: {0} " + _
"ImageIndex: {1} " + _
"NodeType: {2} ", _
Me.Text, _
Me.ImageIndex, _
Me.TreeNodeType.ToString() _
)
End Function
End Class
End Namespace
Da zu sehen, wo der Fehler ist, überfordert mich noch ein wenig, besonders nach so einem Spätdienst.
Gruss
Eckhard! |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|