Hilfe und Beispiel zu Treeview .Net 2 C#

Hallo.
Ich suche ein einfaches Beispiel mit dem man in C# ein Treeview füllen kann. Alle Beispiele sind überfüllt mit Besonderheiten, dabei möchte ich nur einfach einmal in das Thema reinkommen.
Es soll eine Buchverwaltung werden.

-Autoren
---- Heini Müller // Autor
-------- Hundezucht leicht gemacht // Buchtitel
-------- Mein Kater nervt // Buchtitel
---- Eva Schule // Autor
--------- Treeview ist doch ganz einfach ?
--------- Hilfe nix zu finden
--------- Hier bkomme ich ein Beispiel !!

Dank Schnauf …

Eckhart

Hi!

Pack’ einfach einen TreeView auf Dein Form, es sei für dieses Beispiel treeView1 genannt.
Dann kannst Du z.B. sowas machen:

TreeNode nd1 = new TreeNode("Eins");
TreeNode nd2 = new TreeNode("Zwei");
TreeNode nd3 = new TreeNode("Drei");
treeView1.Nodes.Add(nd1);
treeView1.Nodes.Add(nd2);
treeView1.Nodes.Add(nd3);
TreeNode nd11 = new TreeNode("Eins/Eins");
TreeNode nd12 = new TreeNode("Eins/Zwei");
nd1.ChildNodes.Add(nd11);
nd1.ChildNodes.Add(nd12);

usw. usf.

Einfach genug? :smile:
Für alle weiteren Aktionen, die man mit TreeViews und TreeNodes machen kann, verweise ich auf die Dokumentation z.B. auf MSDN.

Gruß,
Martin

Hallo Eckhart,

da ich keine Ahnung davon habe, in welche Art die Daten vorliegengeh ich ma von XML aus. Dazu folgendes:

Nach dem Einlesen der Daten:

TreeNode newNode = new TreeNode();
//erstmal einen Knoten als Wurzel
newNode.Tag = xmlDoc.DocumentElement;
newNode.Text = "documentElement";
xmlTreeView.Nodes.Add(newNode);

foreach (XmlNode n in xmlDoc)
 //xmlDoc beinhaltet das XML Material für den Tree
 loadNodes(newNode, n, false);
 //newNode ist die gerade angelegte Wurzel des TreeViews
 //n ist der XML Knoten
 //false, Knoten öffnen oder auch nicht (wie hier)


private void loadNodes(TreeNode parent, XmlNode child, bool openIt)
{
 TreeNode newNode = new TreeNode();
 newNode.Tag = child;
 //den XML Inhalt in die Tag Eigenschaft des Knotens legen
 //falls man die nochmal braucht
 newNode.Text = child.Name;

 parent.Nodes.Add(newNode);

 if (child.HasChildNodes)
 foreach (XmlNode n in child)
 loadNodes(newNode, n, false);
 //rekuriv die andere Knoten einlesen

 if (openIt)
 xmlTreeView.SelectedNode = newNode;

}


    



Damit kann man prima einen XML Stream in einen Tree umwandeln. 

Über das Ereignis treeNodeSelected kann man denden jeweiligen Inhalt aus dem .tag lesen und zur Anzeige (textBoxen) bringen. Danach wieder in das Tag schreiben.

Fürs Erste sollte das reichen. meld dich, wenn das der richtige Weg für dich scheint.

mfg

Dirk.Pegasus