using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace 街道管理
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
XmlDataDocument doc = new XmlDataDocument();
doc.Load("Address.xml");
XmlNode nodes = doc.DocumentElement;
TreeNode tn = new TreeNode();
//父节点
tn.Text = nodes.Attributes["name"].InnerText;
//添加父节点
treeView1.Nodes.Add(tn);
TreeNode tns = null;
TreeNode chids = null;
//循环取tn的子节点
foreach (XmlNode item in nodes.ChildNodes)
{
tns = new TreeNode(item.Attributes["name"].Value);
//把tn的子节点找 出来赋值给TNS.text
tn.Nodes.Add(tns);
TreeNode chiid = null;
foreach (XmlNode node in item.ChildNodes)
{
//依次循环将tns的子节点找出来赋赋值给chiid添加
chiid = new TreeNode(node.Attributes["name"].Value);
tns.Nodes.Add(chiid);
foreach (XmlNode items in node.ChildNodes)
{
chids = new TreeNode(items.InnerXml);
chiid.Nodes.Add(chids);
}
}
}
//这个方法也好使就是看着没那么清晰!
//在循环里感觉没有上面那个好理解
//foreach (XmlNode item in nodes.ChildNodes)
//{
// tns = new TreeNode();
// tns.Text = item.Attributes["name"].InnerText;
// tns.Tag = item;
// TreeNode child = null;
// foreach (XmlNode node in item.ChildNodes)
// {
// child = new TreeNode();
// child.Text = node.Attributes["name"].InnerText;
// foreach (XmlNode items in node.ChildNodes)
// {
// childs = new TreeNode();
// childs.Text = items.InnerText;
// child.Nodes.Add(childs);
// }
// tns.Nodes.Add(child);
// }
// tn.Nodes.Add(tns);
//}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//判断treeView1中树节点的深度来赋值依次下去
if (this.treeView1.SelectedNode.Level==0)
{
//将treeView1中默认选中的节点给到textBox1中
textBox1.Text = treeView1.SelectedNode.Text;
}else if (this.treeView1.SelectedNode.Level==1){
//用Parent获取当前的父节点给到textBox1
textBox1.Text = treeView1.SelectedNode.Parent.Text;
//将选中的子节点给到textBox2
textBox2.Text = treeView1.SelectedNode.Text;
}else if(this.treeView1.SelectedNode.Level==2){
//用treeViewde的SelectedNode的属性.Parent点一次是找本次上一个节点
textBox1.Text =treeView1.SelectedNode.Parent.Parent.Text;
textBox2.Text = treeView1.SelectedNode.Parent.Text;
//当前选中的赋值给textBox3
textBox3.Text = treeView1.SelectedNode.Text;
}else if(this.treeView1.SelectedNode.Level==3){
//用treeViewde的SelectedNode的属性.Parent点一次是找本次上一个节点
textBox1.Text =treeView1.SelectedNode.Parent.Parent.Parent.Text;
textBox2.Text = treeView1.SelectedNode.Parent.Parent.Text;
textBox3.Text = treeView1.SelectedNode.Parent.Text;
//当前选中的赋值给textBox4
textBox4.Text = treeView1.SelectedNode.Text;
}
}
}
}
<?xml version="1.0" encoding="GB2312"?>
-<root name="石牌街道"> -<juwei name="瑞华居委"> -<jianzhu name="瑞华花园1栋" smid="6"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> -<jianzhu name="瑞华花园2栋" smid="7"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> -<juwei name="金帝居委"> -<jianzhu name="金帝花园1栋" smid="4"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> -<juwei name="朝阳居委"> -<jianzhu name="朝阳花园1栋" smid="5"> <fjname>101室</fjname> <fjname>102室</fjname> </jianzhu> </juwei> </root>