读取XML文件动态绑定TreeView控件
一、语言和环境 | |
A、实现语言 | |
C# | |
B、环境要求 | |
Visual Studio 2012 二、功能要求 现使用.NET WinForms技术为居委会开发一个街道管理软件,其中街道管理窗体界面如图-4所示。 要求: 1、读取提供的XML文件(详见\提供给学员的素材\Address.xml),将其信息动态添加到TreeView控件中。 2、创建表示地址信息的实体类,并使用泛型集合保存XML文件中的信息。 3、选中某子节点,能够将相关信息显示到右侧的文本框中,如图-4所示。 4、窗体标题为“街道管理”。
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace 街道管理
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}
#region 定义一个方法读取xml文件
public void ReadXmlToTvList()
{
XmlDataDocument doc = new XmlDataDocument();
doc.Load("Address.xml");
XmlNode nodes = doc.DocumentElement;
TreeNode tn = new TreeNode();
tn.Text = nodes.Attributes["name"].InnerText;
tvList.Nodes.Add(tn);
TreeNode tns = null;
TreeNode childs = null;
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);
}
}
#endregion
private void FrmMain_Load(object sender, EventArgs e)
{
ReadXmlToTvList();
}
private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
{
if(tvList.SelectedNode.Level==0)
{
txtStreet.Text = tvList.SelectedNode.Text;
}
if(tvList.SelectedNode.Level==1)
{
txtStreet.Text = tvList.SelectedNode.Parent.Text;
txtJuWei.Text = tvList.SelectedNode.Text;
}
if(tvList.SelectedNode.Level==2)
{
txtStreet.Text = tvList.Nodes[0].Text;
txtJuWei.Text = tvList.SelectedNode.Parent.Text;
txtBudingNO.Text = tvList.SelectedNode.Text;
}
if(tvList.SelectedNode.Level==3)
{
txtStreet.Text = tvList.Nodes[0].Text;
txtJuWei.Text = tvList.SelectedNode.Parent.Parent.Text;
txtBudingNO.Text = tvList.SelectedNode.Parent.Text;
txtRoomNO.Text = tvList.SelectedNode.Text;
}
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}