Assign different images for different nodes in TreeView

Syncavata

New Member
In my treeview I'm able to load xml data with images but this code applies a common image to all the nodes.How can i apply a specific image for \[code\]Parent node, sub_child node\[/code\]..etc. For example, I want to assign a different image for \[code\]countries, country, name, states, state\[/code\] with respect to the XML structure. I have loaded 5 different images in the image directory. I need some example to add different images to my treeview.\[code\]private void populateTree(){ ImageList li = new ImageList(); li.ImageSize = new Size(32, 32); li.ColorDepth = ColorDepth.Depth32Bit; treeView1.ImageList = li; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Application.StartupPath + @"\images"); foreach (System.IO.FileInfo file in dir.GetFiles("*.*")) { li.Images.Add(file.Name, Image.FromFile(@"images\" + file.Name)); treeView1.Nodes.Add(null, file.Name, file.Name.ToString(), file.Name.ToString()); } //treeView1.ImageList = li; //treeView1.SelectedNode.ImageIndex = 0; //treeView1.SelectedNode.SelectedImageIndex = 1; var filename = @"C:\Countries.xml"; //First, we'll load the Xml document XmlDocument xDoc = new XmlDocument(); xDoc.Load(filename); //Now, clear out the treeview, and add the first (root) node treeView1.Nodes.Clear(); treeView1.Nodes.Add(new TreeNode(xDoc.DocumentElement.Name)); TreeNode tNode = new TreeNode(); tNode = (TreeNode)treeView1.Nodes[0]; //Here make a call to AddNode, where we'll add all of our nodes addTreeNode(xDoc.DocumentElement, tNode); //Expand the treeview to show all nodes treeView1.ExpandAll();}private void addTreeNode(XmlNode xmlNode, TreeNode treeNode){ XmlNode xNode; TreeNode tNode; XmlNodeList xNodeList; if (xmlNode.HasChildNodes) //The current node has children { xNodeList = xmlNode.ChildNodes; for (int x = 0; x <= xNodeList.Count - 1; x++) //Loop through the child nodes { xNode = xmlNode.ChildNodes[x]; treeNode.Nodes.Add(new TreeNode(xNode.Name)); tNode = treeNode.Nodes[x]; addTreeNode(xNode, tNode); } } else //No children, so add the outer xml (trimming off whitespace) treeNode.Text = xmlNode.OuterXml.Trim();}\[/code\]XML File:\[code\]<?xml version="1.0" encoding="utf-8" ?> <countries> <country> <name>India</name> <states> <state>TamilNadu</state> <state>Andhra</state> <state>Kerala</state> <state>Karnataka</state> </states> </country></countries>\[/code\]
 
Back
Top