Ich will für ein paar Kollegen ein kleines "Hilfsprogramm" schreiben.
Hier sollen bestimmte Programme geöffnet werden können.
Um den Pfade zu diesen Programmen zu aktualisieren oder weitere Programme hinzuzufügen, lade ich es per XML in einen TreeView. So weit so gut.
Nun habe ich jedoch 2 kleine Probleme, für welche ich noch keine Lösung gefunden habe.
1. in meinem Beispiel ist als erstes "Visual Studio" angegeben. Hier ist ein Leerzeichen im Namen. Wenn ich dies auch so in der XML angebe, wird die XML nicht geladen, weil er nicht mit dem Leerzeichen zwischen "Visual" und "Studio" klar kommt. Ohne Leerzeichen sieht es aber auch irgendwie blöd aus im Treeview. Wie kann ich also ein Leerzeichen in der XML speichern oder besser gesagt es so laden, dass das Leerzeichen dann da ist?
2. Ich würde gerne den Pfad und Startdatei (Bsp. "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" von Visual Studio) mit in der XML speichern und diese dann über mein Programm ausführen beim drauf klicken. Jedoch weiss ich absolut nicht, wo ich den Pfad usw. in der XML dann speichern muss und wie ich aus dem "Select Case" (siehe Code) auf diesen Pfad in der XML dann zugreifen soll!?
die XML sieht wie folgt aus :
Mein Code :
Ich hoffe ihr könnt meine Problematik nachvollziehen und mir helfen
Hier sollen bestimmte Programme geöffnet werden können.
Um den Pfade zu diesen Programmen zu aktualisieren oder weitere Programme hinzuzufügen, lade ich es per XML in einen TreeView. So weit so gut.
Nun habe ich jedoch 2 kleine Probleme, für welche ich noch keine Lösung gefunden habe.
1. in meinem Beispiel ist als erstes "Visual Studio" angegeben. Hier ist ein Leerzeichen im Namen. Wenn ich dies auch so in der XML angebe, wird die XML nicht geladen, weil er nicht mit dem Leerzeichen zwischen "Visual" und "Studio" klar kommt. Ohne Leerzeichen sieht es aber auch irgendwie blöd aus im Treeview. Wie kann ich also ein Leerzeichen in der XML speichern oder besser gesagt es so laden, dass das Leerzeichen dann da ist?
2. Ich würde gerne den Pfad und Startdatei (Bsp. "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" von Visual Studio) mit in der XML speichern und diese dann über mein Programm ausführen beim drauf klicken. Jedoch weiss ich absolut nicht, wo ich den Pfad usw. in der XML dann speichern muss und wie ich aus dem "Select Case" (siehe Code) auf diesen Pfad in der XML dann zugreifen soll!?
die XML sieht wie folgt aus :
Mein Code :
VB.NET-Quellcode
-
- Option Strict On
- Option Explicit On
- Imports System.Xml
- Public Class XmlTreeView
- Public Shared Sub LoadFromXml(ByVal FileName As String, ByVal TheTreeView As TreeView)
- Dim xDoc As New XmlDocument
- xDoc.Load(FileName)
- FillTreeView(TheTreeView.Nodes, xDoc.DocumentElement)
- End Sub
- Private Shared Sub FillTreeView(ByVal CurrentNodes As TreeNodeCollection, _
- ByVal xNode As XmlNode)
- For Each xChild As XmlNode In xNode.ChildNodes
- FillTreeView(CurrentNodes.Add(xChild.Name).Nodes, xChild)
- Next
- End Sub
- Public Shared Sub SaveToXml(ByVal FileName As String, ByVal TheTreeView As TreeView)
- Dim xDoc As New XmlDocument
- xDoc.LoadXml("<Nodes></Nodes>")
- SaveNodes(xDoc.DocumentElement, TheTreeView.Nodes)
- xDoc.Save(FileName)
- End Sub
- Private Shared Sub SaveNodes(ByVal xNode As XmlNode, ByVal CurrentNodes As TreeNodeCollection)
- For Each tn As TreeNode In CurrentNodes
- Debug.WriteLine(tn.Text)
- SaveNodes(xNode.AppendChild(xNode.OwnerDocument.CreateElement(tn.Text)), tn.Nodes)
- Next
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
- System.EventArgs) Handles Button1.Click
- 'zum theoretischen speichern der XML - vielleicht später mal...
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
- System.EventArgs) Handles Button2.Click
- XmlTreeView.SaveToXml("Nodes2.xml", Me.TreeView1)
- End Sub
- Sub treeView1_NodeMouseDoubleClick(ByVal sender As Object, ByVal e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseDoubleClick
- Select Case TreeView1.SelectedNode.Text
- Case Is = "Visual Studio"
- MsgBox("Visual Studio")
- Case Is = "Excel"
- MsgBox("Excel")
- End Select
- End Sub
- Private Sub XmlTreeView_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.TreeView1.Nodes.Clear()
- XmlTreeView.LoadFromXml("Nodes.xml", Me.TreeView1)
- End Sub
- End Class
Ich hoffe ihr könnt meine Problematik nachvollziehen und mir helfen