1
在我的树视图中,我可以将图像加载到xml数据,但是此代码将通用图像应用于所有节点。为TreeView中的不同节点分配不同的图像
我如何应用Parent node, sub_child node
..等的特定图像。例如,我想为关于XML结构的countries, country, name, states, state
分配一个不同的图像。
我已经加载了5个不同的图像在图像目录。我需要一些例子来添加不同的图像到我的树形视图。
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();
}
XML文件:
<?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>
你能不能给我一些关于添加图像的更多细节。我检查了它是用于特定数组数据的链接。 – linguini
@linguini:checkout [this](http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.imagelist(v = vs.100).aspx)为完整示例。 – Tigran